当前位置:首页 > VUE

vue实现简单发表评论

2026-02-09 15:45:46VUE

Vue 实现发表评论功能

数据绑定与表单处理

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

vue实现简单发表评论

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

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

提交逻辑处理

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

vue实现简单发表评论

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
分享给朋友:

相关文章

django vue实现

django vue实现

Django与Vue.js整合实现方案 Django作为后端框架与Vue.js作为前端框架的整合,可以通过以下方式实现: 分离式开发 前后端完全分离,Django仅提供API接口,Vue.js通过a…

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue 实现筛选

vue 实现筛选

实现筛选功能的基本方法 在Vue中实现筛选功能通常涉及以下几个核心步骤: 数据绑定与筛选逻辑 使用v-model绑定筛选条件到Vue实例的数据属性,结合计算属性实现动态筛选: data() {…

vue实现groupbox

vue实现groupbox

Vue 实现 GroupBox 组件 在 Vue 中实现类似 GroupBox 的效果可以通过自定义组件完成。GroupBox 通常是一个带有标题的边框容器,用于将相关控件分组显示。 基本实现方法…

vue实现答辩

vue实现答辩

Vue 实现答辩系统的关键步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Pinia/Vuex 进行状态管理。配置 ESLint 和 Pre…

vue实现分栏

vue实现分栏

Vue实现分栏的常见方法 使用CSS Flexbox布局 通过Flexbox可以快速实现分栏效果,适合大多数响应式布局场景 <template> <div class="con…