参考文档https://blog.csdn.net/weixin_35987513/article/details/53748707

项目中分别有三个组件

1.dynamic (父组件)

2.reply (子组件 评论的内容区块)

3.commenttext (子组件 评论的输入框)

首先在父组件,先通过异步获取到文章动态的数据,

<div class="dy_list" v-for="(item, index) in list" :key="item.index"

在data中初始化数据

data() {
return {
list: [],
ajaxUrl:'此处为异步接口',
fanwei: '0',
type: 0, // 0为评论作者 1为评论别人的评论
oldComment: null, // 旧评论者的名字
chosedIndex: -1, // 被选中的评论的index
comment: [],
show: false
}
},

通过异步方法拿到后台的文章的数据

Create: function() {
this.$nextTick(function() {
this.fetchData()
})
},
methods: {
// 展开全部
openallC(index) {
console.log(this.list[index])
this.list[index].openall = !this.list[index].openall
},
pagechange: function(currentPage) {
this.current = currentPage
},
searchthing: function(searchthing) {
this.Searchthing = searchthing
},
fetchData() {
this.$ajax
.get(this.ajaxUrl, {
params: {
current: this.current,
fanwei: this.fanwei
}
})
.then(res => {
this.list = res.data.list
console.log(this.list)
})
.catch(function(error) {
console.log(error)
})
},
addComment: function(data) {
let index = data[1]
if (this.type == 0) {
this.list[index].comment.push({
name: 'session',
time: getTime(),
con: data[0],
reply: []
})
} else if (this.type == 1) {
this.list[index].comment[this.chosedIndex].reply.push({
responder: 'aaaa',
reviewers: this.list[index].comment[this.chosedIndex].name,
time: getTime(),
content: data[0]
})
this.type = 0
}
},
changeCommer: function(name, index) {
this.oldComment = name
this.chosedIndex = index
this.type = 1
},
canelCommit: function() {
this.type = 0
},
commentshow: function(index) {
this.list[index].openbtn = !this.list[index].openbtn
}
},
components: {
SearchWordBtn: SearchWordBtn,
RepLy: RepLy,
CommentText: CommentText
},

}

回复组件

<template>
<div class="reply-box">
<p v-if="comment.length==0">暂无评论,我来发表第一篇评论!</p>
<dl v-else>
<dd class="dynamic-pinglun dyn-huifu" v-for="(item,index) in comment" :index="index" :key="item.index">
<ul class="box">
<li class="left">
<img :src="item.img" alt="">
</li>
<li class="right">
<span class="name">{{item.name}}</span>
<span class="text">{{item.con}}</span>
<p class="time">{{item.time}}</p>
</li>
<div class="clear"></div>
<div class="huifu-btn" @click="changecomer(item.name, index)">回复</div>
</ul>
<div v-if="item.reply">
<div class="two-huifu" v-if="item.reply.length > 0">
<ul class="box twobox" v-for="reply in item.reply" :key="reply.index">
<li class="left">
<img src="../../../static/images/touxiang.png" alt="">
</li>
<li class="right">
<span class="name">{{reply.responder}}@{{reply.reviewers}}:</span>
<span class="text">{{reply.content}}</span>
<p class="time">{{reply.time}}</p>
</li>
<div class="huifu-btn" @click="changecomer(reply.responder, index)">回复</div>
</ul>
</div>
</div>
</dd>
</dl>
</div>
</template>
<script>
export default {
name: 'reply',
props: ['comment'],
methods: {
changecomer: function (name, index) {
this.$emit("change", name, index)
}
}
}
</script>
<style scoped lang="scss" type="text/scss">
.box {
overflow: hidden;
margin-bottom: 15px;
.left {
width: 30px;
height: 30px;
float: left;
img {
width: 100%;
height: 100%;
}
}
.right {
float: left;
width: 90%;
padding-left: 10px;
box-sizing: border-box;
input {
width: 99%;
height: 26px;
vertical-align: top;
}
}
}
.two-huifu {
margin: 10px 0;
.right {
width: 90%;
}
}
.twobox {
overflow: hidden;
margin-left: 32px;
background: #eaeaec;
padding: 10px;
border-bottom: solid 1px #d9d9d9;
margin-bottom: 0
}
.twobox:last-child {
border: 0
}
.huifu-btn {
float: right;
}
.time {color: #808080;font-size: 12px;}
.dyn-huifu {
padding-top: 15px;
border-top: solid 1px #d9d9d9;
}
</style>

输入文本组件

vue 实现评论回复功能相关推荐

  1. Java单表实现评论回复功能

    Java单表实现评论回复功能 1.简介 2.功能实现图 3.数据库设计 4.实体类 5.实现思路 6.功能实现 6.1 Sql入手 6.2 业务实现 7.前端实现 8.最终成果 1.简介 最近在写毕业 ...

  2. java评论回复功能例子_Java实现评论回复功能的完整步骤

    前言 使用递归循环开发评论回复功能,适用于大部分的简单单体应用 评论功能或许是大多数的单体应用之中会用到的功能,我们会在自己所开发的项目之中进行集成该功能 大多数时候我们会将评论功能划分成以下几种: ...

  3. 实现微信公众号评论回复功能

    最近做一个项目,实现类似微信公众号评论回复功能,如图所示: 大概分以下几个组件: 表情包组件: <template><div class="showEmjio" ...

  4. thinkphp5实现评论回复功能

    由于之前写评论回复都是使用第三方插件:畅言   所以也就没什么动手,现在证号在开发一个小的项目,所以就自己动手写评论回复,没写过还真不知道评论回复功能听着简单,但仔细研究起来却无法自拔,由于用户量少, ...

  5. Android开发之评论回复功能

    Android开发之评论回复功能 一:效果图 二:具体代码 1.首先是布局文件(activity_main) 2.第二个布局文件(comment_item) 3.第三个布局文件(reply_item) ...

  6. 评论回复功能的设计与实现

    评论回复功能的数据库设计可以分开设计成两张表,评论表和回复表,也可以将其设计为一张表,我采用的是一张表 评论回复表的相关字段(我做的是商品goods下的评论回复) 字段解释: gc_id:评论回复表i ...

  7. vue3评论回复功能

    运用的是vue3+ts,文本框和小图标使用的是ant-design-vue框架 简单的实现了页面布局,点击回复等小功能(删除数据和回复添加到数组中目前没有写,因为项目要求后面需要对接后端接口,所以就懒 ...

  8. mysql 评论回复表设计_数据库设计——评论回复功能

    1.概述 评论功能已经成为APP和网站开发中的必备功能.本文主要介绍评论功能的数据库设计. 评论功能最主要的是发表评论和回复评论(删除功能在后台).评论功能的拓展功能体现有以下几方面: (1)单篇文章 ...

  9. 评论回复功能 asp.net_微信重大更新!公众号推送时间线打乱+7大新功能上线!怎么玩?...

    作者 |韩俊杰来源 |馒头商学院「ID:mantousxy」自从微信年初举办公开课后,每个月都没闲着,各种新功能.小改版层出不穷.就在最近,微信又接连推出几项新功能,动作让人"眼花缭乱&qu ...

最新文章

  1. servlet必知细节(二)--servlet执行过程
  2. Java发送邮件正文带表格
  3. MySQL审查工具_MySQL审计工具Audit插件使用
  4. 欧拉角死锁_刚体运动学最通俗易懂的理解万向节死锁
  5. 腾讯云与智慧产业总裁汤道生:产业互联网是一场“持久战”
  6. leetcode讲解--693. Binary Number with Alternating Bits
  7. c++语言表白超炫图形_R语言统计与绘图:组合图形布局
  8. [Melodymood][流行经典]Take Me to your heart 《吻别》英文版
  9. python爬取学籍_仝卓学籍造假微博道歉,用Python抓取微博的评论看看群众都说什么...
  10. 【计算机视觉】【并行计算与CUDA开发】GPU硬编码
  11. 我精心梳了犀利的发型,胡子刮得一干二净,去字节跳动面试,结果被怼了!...
  12. 弹性力学经典解法与有限元法的不同特点
  13. 聊天ai机器人_适用于您网站的14种最佳AI聊天机器人软件(已比较)
  14. 在线博客系统——注册
  15. vtuber面部捕捉工具_NOKOV(度量)动作捕捉携专业虚拟直播解决方案亮相世界VR产业大会...
  16. Meltdown(熔断漏洞)- Reading Kernel Memory from User Space/KASLR | 原文+中文翻译
  17. 资深 Googler 深度解读 TensorFlow
  18. 6.4.2.时序逻辑测试模块
  19. 最全的身份证校验规则
  20. base64编码类------原始码(C#)

热门文章

  1. 意外收获:如何将中文转成拼音
  2. Python邮件收发(SMTP POP3)
  3. 全球与中国医疗3D打印机市场深度研究分析报告
  4. 在官网上下载慢解决办法
  5. vmware15.5.5版本虚拟机(VMware Workstation 15 Pro)BUG(CentOS7.3下):切换大小写失效的解决方案
  6. 女人要想赚钱,应该选什么路?
  7. DA14580 RW消息事件处理----转
  8. 新入手Seagate希捷1TB移动硬盘1t USB3.0一个
  9. win10輸入法,繁體字,簡體字切換
  10. 久泰新材料在港上市申请失效:年亏损超2亿元,崔轶钧为董事长