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对象所有属性和方法的函数
Oct 16 Javascript
js中复制行和删除行的操作实例
Jun 25 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
JavaScript实现动画打开半透明提示层的方法
Apr 21 Javascript
jQuery实现多级下拉菜单jDropMenu的方法
Aug 28 Javascript
Jquery 垂直多级手风琴菜单附源码下载
Nov 17 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
DOM 事件的深入浅出(一)
Dec 05 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
Dec 06 Javascript
js实现4个方向滚动的球
Mar 06 Javascript
JS获取当前地理位置的方法
Oct 25 Javascript
vue 组件间的通信之子组件向父组件传值的方式
Jul 29 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来改写404错误页让你的页面更友好
2013/01/24 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php实现的mongodb操作类实例
2015/04/03 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
js 目录列举函数
2008/11/06 Javascript
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
js创建一个input数组并绑定click事件的方法
2014/06/12 Javascript
JS实现CheckBox复选框全选全不选功能
2015/05/06 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
vue和react等项目中更简单的实现展开收起更多等效果示例
2018/02/22 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
Vue+webpack+Element 兼容问题总结(小结)
2018/08/16 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
用Python抢过年的火车票附源码
2015/12/07 Python
Python语言的变量认识及操作方法
2018/02/11 Python
Python Django 实现简单注册功能过程详解
2019/07/29 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
python中openpyxl和xlsxwriter对Excel的操作方法
2021/03/01 Python
详解Canvas 跨域脱坑实践
2018/11/07 HTML / CSS
总裁岗位职责
2013/12/04 职场文书
人事文员岗位职责
2014/02/16 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
服务行业演讲稿
2014/09/02 职场文书
食品仓管员岗位职责
2015/04/01 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android