(二十二)、实现评论功能(2)【uniapp+uinicloud多用户社区博客实战项目(完整开发文档-从零到完整项目)】

news2024/11/30 8:56:04

1,渲染评论列表

1.1,在detail页面中定义评论列表数组和getcomment方法:
commentList: [],

getcomment方法:

      //获取评论列表
      async getComment() {
        let commentTemp = db.collection("quanzi_comment")
          .where(`article_id == "${this.artid}"`).orderBy("comment_date desc")
          .limit(20).getTemp();
        let userTemp = db.collection("uni-id-users").field("_id,username,nickname,avatar_file").getTemp()

        let res = await db.collection(commentTemp, userTemp).get()
        console.log(res.result.data)
        this.commentList = res.result.data
      },
1.2,父组件传值给子组件(detail—comment-item)

detail中:

      <!-- 评论内容子组件 -->
      <view class="content">
        <view class="item" v-for="item in commentList">
          <comment-item :item="item"></comment-item>
        </view>
      </view>

comment-item子组件接收数据:

    props: {
      item: {
        type: Object,
        default () {
          return {}
        }
      }
    },
1.3,渲染数据到页面

这里需要引入以前封装的两个方法 giveName,giveAvatar

  import {
    giveName,
    giveAvatar
  } from "../../utils/tools.js"

渲染数据到页面:

  <view>
    <view class="comment-item">
      <view class="avatar">
        <u-avatar :src="giveAvatar(item)" size="26"></u-avatar>
      </view>

      <view class="wrap">
        <view class="username">{{giveName(item)}}</view>
        <view class="comment-content">{{item.comment_content}}</view>
        <view class="info">
          <view class="reply-btn">3回复 </view>
          <view>
            <uni-dateformat :date="item.comment_date" :threshold="[60000,3600000*24*30]">
            </uni-dateformat>
          </view>
          <view>{{item.province}}</view>
        </view>
      </view>
    </view>
  </view>
1.4,效果:

在这里插入图片描述

2,评论后及时无感展示以及细节处理

2.1,评论无感展示

定义以下属性:

 noComment: false

修改页面:

      <!-- 暂无评论 -->
      <view style="padding-bottom:50rpx" v-if="!commentList.length && noComment">
        <u-empty mode="comment" icon="http://cdn.uviewui.com/uview/empty/comment.png">
        </u-empty>
      </view>

修改方法:

        let res = await db.collection(commentTemp, userTemp).get()
        console.log(res.result.data)
        if (res.result.data == 0) this.noComment = true
        this.commentList = res.result.data
2.2,评论成功后的回调

在子组件发布评论的方法中,添加以下代码:

          //给父组件传递一个函数
          this.$emit("commentEnv", {
            _id: res.result.id,
            comment_content: this.replyContent,
            "province": province,
            comment_date: Date.now()
          })

在父组件detail中接收并打印输出:

    <!-- 评论输入框子组件 -->
    <comment-frame :commentObj="commentObj" @commentEnv="PcommentEnv"></comment-frame>

commentEnv方法:

      //评论成功后的回调
      PcommentEnv(e) {
        console.log(e);
        this.commentList.unshift({
          ...this.commentObj,
          ...e,
          user_id: [store.userInfo]
        })
      },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363617.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浏览器跨域问题

跨域问题什么是跨域问题如何解决跨域问题JSONPCORS方式解决跨域使用 Nginx 反向代理使用 WebSocket跨源请求是否能携带Cookie什么是跨域问题 跨域问题指的是不同站点之间&#xff0c;使用 ajax 无法相互调用的问题。跨域问题本质是浏览器的一种保护机制&#xff0c;它的初衷是为…

【离线数仓-3-数仓建模方法理论汇总】

离线数仓-3-数仓建模方法理论汇总离线数仓-3-数仓建模方法理论汇总1.数仓概述2.数据仓库核心架构&#xff08;Hive&#xff09;3.数据仓库建模概述4.数据仓库建模方法论1.ER&#xff08;Entity Relationship&#xff09;模型2.维度模型1.维度建模理论-事实表1. 事实表概述2.事实…

RabbitMQ学习(十):发布确认高级

一、概述在生产环境中由于一些不明原因&#xff0c;导致 RabbitMQ 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败导致消息丢失&#xff0c;需要手动处理和恢复。在这样比较极端的情况&#xff0c;当RabbitMQ 集群不可用的时候&#xff0c;无法投递的消息该如何处理呢…

面试题:HashMap为什么是线程不安全的?解决办法是什么?

在JDK1.7中容易造成死循环和数据丢失&#xff0c;造成的原因如下图假设某个时刻t1,t2都访问到了链表&#xff0c;t1,t2的下一个节点都是b,如图此时内存耗尽&#xff0c;线程t2线程进入等待状态&#xff0c;假设此时刚好达到临界点需要扩容&#xff0c;t1进行扩容&#xff0c;并…

【20230210】二叉树小结

二叉树的种类二叉树的主要形式&#xff1a;满二叉树和完全二叉树。满二叉树深度为k&#xff0c;有2^k-1个节点的二叉树完全二叉树除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位置。二叉搜索树…

浅谈毫米波技术与应用

浅谈毫米波之技术篇2020年10月GSMA发布的《5G毫米波技术白皮书》预计&#xff0c;在2022年北京冬奥会上&#xff0c;5G毫米波有望大放异彩&#xff0c;为观众、媒体转播者、赛事组织和参与者等提供优质的观赛体验、完备的服务保障&#xff0c;将可提供全景VR、新型信息交互、智…

SCADA-1-组态前期需求调研篇

近期有朋友找到我&#xff0c;说scada组态系统开源的很少&#xff0c;不少开发者借此售卖这种软件&#xff0c;我回了句&#xff1a;这有什么难的&#xff0c;不就是拖拖拽拽&#xff0c;再绑定上数据源&#xff0c;实现动态效果嘛。。。&#xff08;先装了个X&#xff09;一、…

Web前端:全栈开发人员的责任

多年来&#xff0c;关于全栈开发人员有很多说法&#xff0c;全栈开发人员是一位精通应用程序全栈开发过程的专业人士。这包括数据库、API、前端技术、后端开发语言和控制系统版本。你一定遇到过前端和后端开发人员。前端开发人员将构建接口&#xff0c;而后端开发人员将开发、更…

使用 Xcode 创建第一个 Objective-C 命令行程序 HelloWorld

总目录 iOS开发笔记目录 从一无所知到入门 文章目录创建项目运行项目&#xff0c;查看日志输出同一项目下新增子目录&#xff0c;切换要运行的 Target创建项目 打开 Xcode &#xff0c;Create a new Xcode project 接下来的默认界面&#xff1a; 切换到 macOS 下&#xff…

攻击者失手,自己杀死了僵尸网络 KmsdBot

此前&#xff0c;Akamai 的安全研究员披露了 KmsdBot 僵尸网络&#xff0c;该僵尸网络主要通过 SSH 爆破与弱口令进行传播。在对该僵尸网络的持续跟踪中&#xff0c;研究人员发现了一些有趣的事情。 C&C 控制 对恶意活动来说&#xff0c;最致命的就是夺取对 C&C 服务…

后端基础SQL

SQL基础语法: sql对大小写不敏感&#xff0c;eg: SELECT 等效于 select&#xff1b;select: select用于从表中查找数据&#xff0c;select 列名 from 表名 —> 结果集:&#xff1a;仅有查询列的结果表&#xff1b; SELECT * FROM 表名称 ----> 结果集: 查找表的所有数据…

你是客户喜欢的那类外贸业务员吗

某天&#xff0c;一个智利的客户发了一封邮件来&#xff0c;只为了告诉我一个好消息——他的产品进入了 Walmart。01以下是他的原文&#xff1a;Hi Sam,Just for you to know, that 2-3 month ago, We take part in a bidding, and we win with the clip caps.They buy 400-500…

深入浅出C++ ——set类深度剖析

文章目录一、关联式容器二、键值对三、树形结构的关联式容器四、set类介绍六、set的使用七、multiset一、关联式容器 STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性…

如何解决过拟合与欠拟合,及理解k折交叉验证

模型欠拟合&#xff1a;在训练集以及测试集上同时具有较⾼的误差&#xff0c;此时模型的偏差较⼤&#xff1b; 模型过拟合&#xff1a;在训练集上具有较低的误差&#xff0c;在测试集上具有较⾼的误差&#xff0c;此时模型的⽅差较⼤。 如何解决⽋拟合&#xff1a; 添加其他特…

【蓝桥杯集训8】哈希表专题(3 / 3)

目录 手写哈希表 1、开放寻址法 2、拉链法 字符串前缀哈希表法 2058. 笨拙的手指 - 哈希表 秦九韶算法&#xff08;进制转换&#xff09; 枚举 秦九韶算法——将x进制数转化为十进制数 手写哈希表 活动 - AcWing 1、开放寻址法 设 h(x)k&#xff0c;也就是 x 的哈希值…

TPM 2.0实例探索2 —— LUKS磁盘加密(3)

接前文&#xff1a;TPM 2.0实例探索2 —— LUKS磁盘加密&#xff08;2&#xff09; 本文大部分内容参考&#xff1a; Code Sample: Protecting secret data and keys using Intel Platform... 二、LUKS磁盘加密实例 3. 将密码存储于TPM的LUKS 由于自动挂载需要在运行时提供一…

Java中的Stack与Queue

文章目录一、栈的概念及使用1.1 概念1.2 栈的使用1.3 栈的模拟实现二、队列的概念及使用2.1 概念2.2 队列的使用2.3 双端队列(Deque)三、相关OJ题3.1 用队列实现栈。3.2 用栈实现队列。总结一、栈的概念及使用 1.1 概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在…

【Git】码云

目录 5、 Git 团队协作机制 5.1 团队内协作 5.2 跨团队协作 6、 Gitee码云 操作 6.1 创建远程仓库 6.2 远程仓库操作 6.3 SSH 免密登录 5、 Git 团队协作机制 5.1 团队内协作 5.2 跨团队协作 6、 Gitee码云 操作 码云网址&#xff1a; https://githee.com/ 账号验证…

【0基础学爬虫】爬虫基础之HTTP协议的基本原理介绍

大数据时代&#xff0c;各行各业对数据采集的需求日益增多&#xff0c;网络爬虫的运用也更为广泛&#xff0c;越来越多的人开始学习网络爬虫这项技术&#xff0c;K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章&#xff0c;为实现从易到难全方位覆盖&#xff0c;特设【0基础学…

干货 | 中小企业选型 Elasticsearch 避坑指南

1、线上常见问题在我线下对接企业或线上交流的时候&#xff0c;经常会遇到各种业务场景不同的问题。比如&#xff0c;常见问题归类如下&#xff1a;常见问题1&#xff1a;ES 适合场景及架构选型问题。公司的核心业务是做企业员工健康管理&#xff0c;数据来自电子化后的员工体检…