当前位置:首页 > VUE

vue实现简单发表评论

2026-02-09 15:45:46VUE

Vue 实现发表评论功能

数据绑定与表单处理

在 Vue 中通过 v-model 实现表单双向绑定,创建一个评论输入框和提交按钮:

<template>
  <div>
    <textarea v-model="newComment" placeholder="输入评论内容"></textarea>
    <button @click="addComment">发表评论</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newComment: '',
      comments: [] // 存储评论列表
    }
  }
}
</script>

提交逻辑处理

在 methods 中定义 addComment 方法,验证非空后添加到评论列表并清空输入框:

methods: {
  addComment() {
    if (this.newComment.trim() === '') return
    this.comments.push({
      id: Date.now(),
      content: this.newComment,
      timestamp: new Date().toLocaleString()
    })
    this.newComment = ''
  }
}

评论列表渲染

使用 v-for 循环渲染评论列表,建议添加 key 提高性能:

<ul>
  <li v-for="comment in comments" :key="comment.id">
    <p>{{ comment.content }}</p>
    <small>{{ comment.timestamp }}</small>
  </li>
</ul>

样式优化(可选)

添加基础样式提升用户体验:

<style>
textarea {
  width: 300px;
  height: 100px;
  margin-bottom: 10px;
}
button {
  padding: 5px 15px;
}
ul {
  list-style: none;
  padding: 0;
}
li {
  border-bottom: 1px solid #eee;
  padding: 10px 0;
}
</style>

完整组件示例

<template>
  <div class="comment-box">
    <textarea v-model="newComment" placeholder="输入评论内容"></textarea>
    <button @click="addComment">发表评论</button>

    <ul class="comment-list">
      <li v-for="comment in comments" :key="comment.id">
        <p>{{ comment.content }}</p>
        <small>{{ comment.timestamp }}</small>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newComment: '',
      comments: []
    }
  },
  methods: {
    addComment() {
      if (this.newComment.trim() === '') return
      this.comments.push({
        id: Date.now(),
        content: this.newComment,
        timestamp: new Date().toLocaleString()
      })
      this.newComment = ''
    }
  }
}
</script>

<style>
/* 样式同上 */
</style>

vue实现简单发表评论

标签: 简单vue
分享给朋友:

相关文章

vue 实现pc

vue 实现pc

Vue 实现 PC 端应用的核心要点 Vue.js 是一个渐进式框架,适合构建 PC 端单页应用(SPA)或复杂的前端界面。以下是实现 PC 端应用的关键方法和注意事项: 项目初始化与工程化配置 使…

vue实现博客

vue实现博客

Vue 实现博客的基本步骤 使用 Vue.js 实现一个博客系统可以分为前端和后端两部分。以下是基于 Vue 的前端实现方案,后端可以选择 Node.js、Django 或其他框架。 项目初始化…

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <u…

vue实现portal

vue实现portal

Vue 实现 Portal 功能 Portal 是一种将子节点渲染到父组件 DOM 层级之外的 DOM 节点的技术,常用于实现模态框、弹出层等需要脱离当前组件层级的场景。Vue 可以通过多种方式实现…

vue实现心电图

vue实现心电图

Vue 实现心电图效果 在 Vue 中实现心电图效果通常需要结合 Canvas 或 SVG 进行动态绘图,模拟心电图数据的实时变化。以下是两种实现方式的核心思路和代码示例: 使用 Canvas 绘制…

vue实现队列

vue实现队列

Vue 实现队列功能 在 Vue 中实现队列功能可以通过多种方式完成,以下是几种常见的方法: 使用数组模拟队列 队列遵循先进先出(FIFO)原则,可以用数组的 push 和 shift 方法模拟入队…