vue评论回复组件

一起探讨学习

欢迎大家进群,一起讨论学习

每天给大家提供技术干货

在这里插入图片描述

博主技术笔记 https://notes.xiyankt.com


博主开源微服架构前后端分离技术博客项目源码地址,欢迎各位star https://gitee.com/bright-boy/xiyan-blog


vue评论回复组件

在这里插入图片描述

在这里插入图片描述

1.使用下面命令下载bright-comment组件

npm i bright-comment

2、下载完成之后在项目中引入

import comment from 'bright-comment'
components:{
  comment
},

3、使用

 <comment></comment>

4、如果没有下载element-ui的使用下面命令进行下载

npm i element-ui -S

5、下载完成后在main.js中引入

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI);

三、属性及事件

名称类型说明默认值
avatarString头像
placeholderString文本框提示内容在此输入评论内容…
minRowsNumber文本框最小行数4
maxRowsNumber文本框最大行数8
commentNumNumber评论条数2
authorIdNumber当前登录用户id1
labelString标签名作者
commentWidthString文本框宽度80%
commentListArray评论列表包含内容较多,此处略
评论列表commentList 包含多个评论comment,关于comment相关字段如下:

2、comment包含字段

名称类型说明
idNumber评论id
commentUserObject评论用户
targetUserObject被评论用户
contentString评论内容
createDateString评论时间
childrenListArray子评论列表

3、用户包含字段

名称类型说明
idNumber用户id
nickNameString用户昵称
avatarString用户头像

4、Events事件

名称说明参数
doSend(content)初始文本框发送事件评论内容
doChidSend(content,bid,pid)评论列表中文本框发送事件评论内容,被评论用户id,父级评论id
### 关于 Spring Boot 和 Vue 实现评论回复功能 在构建现代 Web 应用程序时,实现用户之间的互动至关重要。对于评论回复系统的创建,Spring Boot 提供了强大的后端支持,而前端则可以利用 Vue.js 来提供流畅的用户体验。 #### 后端 API 设计 为了处理评论及其对应的回复,在服务器一侧应当定义 RESTful 接口来操作这些资源。通常情况下会涉及到 CRUD (Create, Read, Update, Delete) 操作: - **获取所有顶级评论** 可能对应 GET 请求 `/api/comments`。 - **发布新评论/回复** 对应 POST 请求到 `/api/comments` 或者针对特定父级 ID 的路径如 `/api/comments/{parentId}`。 - **更新现有评论** 使用 PUT 方法发送至相应 URL 路径下。 - **删除指定ID下的记录** 则是 DELETE 动作加上目标实体的位置描述符。 ```java @RestController @RequestMapping("/api/comments") public class CommentController { @Autowired private CommentService commentService; @GetMapping("") public ResponseEntity<List<CommentDTO>> getAllComments() { List<CommentDTO> comments = commentService.getAllTopLevelComments(); return new ResponseEntity<>(comments, HttpStatus.OK); } @PostMapping("/{parentId}") public ResponseEntity<CommentDTO> addReply(@PathVariable Long parentId, @RequestBody CommentDTO dto) { CommentDTO savedComment = commentService.addReply(parentId, dto); return new ResponseEntity<>(savedComment, HttpStatus.CREATED); } } ``` #### 前端交互逻辑 Vue 组件负责展示数据并响应用户的输入行为。这里假设已经有一个名为 `comment-list.vue` 的组件用于渲染列表项以及表单区域以便提交新的条目或回应他人发表的内容[^1]。 ```vue <template> <div v-for="(item,index) in items" :key="index"> <!-- 显示每条评论 --> {{ item.content }} <!-- 如果有子评论,则递归调用自己显示 --> <ul v-if="item.replies && item.replies.length > 0"> <li v-for="(reply,idx) in item.replies" :key="idx">{{ reply.content }}</li> </ul> <!-- 添加回复按钮触发模态框打开事件 --> <button @click="showModal(item.id)">Add Reply</button> <!-- 表单部分省略... --> </div> </template> <script> export default { data(){ return{ showModalFlag:false, currentItemId:null, newItemContent:'' }; }, methods:{ async fetchItems(){ const response=await this.$http.get('/api/comments'); this.items=response.data; }, async submitForm(event){ event.preventDefault(); await this.$http.post(`/api/comments/${this.currentItemId}`, {content:this.newItemContent}); // 清除表单项并关闭弹窗... } } }; </script> ``` 上述代码片段展示了如何通过组合使用 Axios 发起 HTTP 请求并与远程服务通信;同时运用条件渲染机制呈现不同层次结构的信息单元,并允许用户便捷地发起对话链中的进一步交流活动。
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘 明 同学呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值