当前位置:首页 > 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>

样式优化(可选)

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

vue实现简单发表评论

<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实现分类

Vue实现分类功能的方法 使用v-for和计算属性 通过计算属性对数据进行分类处理,结合v-for渲染分类后的列表。示例代码: <template> <div>…

vue插槽实现

vue插槽实现

插槽的基本概念 Vue插槽(Slot)是一种内容分发机制,允许父组件向子组件传递模板片段,子组件通过<slot>标签定义接收位置。插槽的核心作用是增强组件的灵活性和复用性。 默认插槽 子…

vue拖动实现

vue拖动实现

实现 Vue 拖动功能的方法 使用 HTML5 拖放 API 在 Vue 中可以利用 HTML5 的原生拖放 API 实现拖动功能。通过 draggable 属性标记可拖动元素,结合 @dragsta…

vue实现卡片

vue实现卡片

Vue 实现卡片组件的方法 使用 Vue 实现卡片组件可以通过多种方式完成,以下是几种常见的实现方法: 使用原生 HTML 和 CSS 在 Vue 单文件组件中,可以通过模板和样式直接实现卡片效果…

vue排他思想实现

vue排他思想实现

Vue 排他思想实现 排他思想在 Vue 中通常指多个元素中只能有一个被选中或激活的状态。可以通过数据驱动和条件渲染实现。 使用 v-model 和计算属性 定义一个数据属性存储当前选中项的索引或标…

vue怎样实现mvvm

vue怎样实现mvvm

Vue 实现 MVVM 的原理 Vue 的 MVVM(Model-View-ViewModel)模式通过数据绑定和响应式系统实现视图与数据的自动同步。以下是 Vue 实现 MVVM 的核心机制: 数…