uni-app实现点赞评论功能


Posted in Javascript onNovember 25, 2019

模拟朋友圈实时点赞及评论功能

点赞思路:点击的时候,使用push(点赞)以及slice(取消赞)方法处理数组,并且调用点赞接口

评论思路:点击的时候,写多一个评论列表,当点击发送的时候commentStatus=true,且索引等于点击的索引。同时调用获取评论列表的接口

html

<view class="toolbar">
  <view class="timestamp">{{item.timetype}}</view>
  <!-- 点赞 如果islove==1,图片变为点赞的图片-->
  <view class="like" @tap="like(index,item.id)">
    <image :src="item.islove==1?'../../static/images/lllllike.png':'../../static/images/llike.png'"></image>
  </view>
  <!-- 评论 -->
  <view class="comment" @tap="comment(index,item.id)">
    <image src="../../static/images/pinglun.png"></image>
  </view>
</view>
<!-- 赞/评论区 -->
<view class="post-footer">
  <!-- 点赞区 -->
  <view class="footer_content" v-if="item.lovelist.length>0">
    <image class="liked" src="../../static/images/likelike.png"></image>
    <text class="nickname" v-for="(love,love_index) of item.lovelist" :key="love_index">{{love.name}},</text>
  </view>
  <!-- 评论区 -->
  <view class="footer_content" v-if="item.community_on.length>0" v-for="(comment,comment_index) in item.community_on" :key="comment_index">
    <text class="comment-nickname">{{comment.nickname}}: <text class="comment-content">{{comment.content}}</text></text>
  </view>
   <!-- 当评论发送成功之后实时渲染出来评论列表-->
  <view class="footer_content" v-if="commentStatus && index==commentIndex">
    <text class="comment-nickname">{{realtimename}}: <text class="comment-content">{{realtimecontent}}</text></text>
  </view>
</view>
// 点赞
like(index,communityId) {
  if (this.community[index].islove == 0) {
    this.community[index].islove = 1;
    this.community[index].lovelist.push(
      {name:this.userinfo.nickname,vipid:this.userinfo.id}
    )
    this.likeImport(communityId)
  } else {
    this.community[index].islove = 0;
    this.community[index].lovelist.splice(this.community[index].lovelist.indexOf(this.userinfo.nickname), 1)
    this.likeImport(communityId)
  }
},
// 点赞接口
likeImport(id) {
  app.vipidRequest({
    url: 'Vip/community_love',
    data: {
      id: id
    },
    header: {
      'content-type': 'application/x-www-form-urlencoded', 
    },
    method: 'POST',
    success:(res) => {
      if(res.data.status) {

      } else {
        console.log(res.data)
      }
    }
  })
},
// 点击评论
comment(index,communityId) {
  this.showInput = true; //调起input框
  this.focus = true; // 对焦
  this.communityId = communityId
},
// 点击发送
send_comment: function(message) {
  this.commentStatus = true 
  this.commentIndex = index
  this.realtimecontent = message.content
  this.realtimename = this.userinfo.nickname
  app.vipidRequest({
    url: 'Vip/community_on',
    data: {
      id: this.communityId,
      content: message.content,
      type: 1
    },
    header: {
      'content-type': 'application/x-www-form-urlencoded', 
    },
    method: 'POST',
    success:(res) => {
      if(res.data.status) {
        this.getCommunity() // 整个页面数据刷新
        this.init_input()
        this.commentStatus = false // 临时渲染评论的列表隐藏
        this.realtimecontent = ''
        this.realtimename = ''
        this.input_placeholder = '评论';
      } else {
        console.log(res.data)
      }
    }
  })
}
// 取消评论/评论完成输入框状态值
init_input() {
  this.showInput = false;
  this.focus = false;
  this.input_placeholder = '评论';
  this.is_reply = false;
},

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js获取单元格自定义属性值的代码(IE/Firefox)
Apr 05 Javascript
为jQuery.Treeview添加右键菜单的实现代码
Oct 22 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
Dec 03 Javascript
js中的cookie的读写操作示例详解
Apr 17 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
JavaScript中的getMilliseconds()方法使用详解
Jun 10 Javascript
Javascript删除指定元素节点的方法
Jun 21 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
three.js实现圆柱体
Dec 30 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
微信小程序云开发之数据库操作
May 18 Javascript
js prototype深入理解及应用实例分析
Nov 25 #Javascript
KnockoutJS数组比较算法实例详解
Nov 25 #Javascript
js实现简单的日历显示效果函数示例
Nov 25 #Javascript
VUE.CLI4.0配置多页面入口的实现
Nov 25 #Javascript
用Golang运行JavaScript的实现示例
Nov 25 #Javascript
JS插入排序简单理解与实现方法分析
Nov 25 #Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
Nov 25 #Javascript
You might like
php+mysql 实现身份验证代码
2010/03/24 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
2011/08/11 PHP
ThinkPHP3.1新特性之多数据库操作更加完善
2014/06/19 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
php常用经典函数集锦【数组、字符串、栈、队列、排序等】
2019/08/23 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
newxtree.js代码
2007/03/13 Javascript
JavaScript DOM 添加事件
2009/02/14 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
AngularJS实现表单验证
2015/01/28 Javascript
jQuery给多个不同元素添加class样式的方法
2015/03/26 Javascript
jquery SweetAlert插件实现响应式提示框
2015/08/18 Javascript
学习JavaScript设计模式(代理模式)
2015/12/03 Javascript
简单谈谈json跨域
2016/03/13 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
javascript设计模式之模块模式学习笔记
2017/02/15 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
详解基于vue的服务端渲染框架NUXT
2018/06/20 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
python运行其他程序的实现方法
2017/07/14 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
驾驶员安全责任书范本
2014/07/24 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
《倍数和因数》教学反思
2016/02/23 职场文书
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis