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 相关文章推荐
javascript面向对象的方式实现的弹出层效果代码
Jan 28 Javascript
javascript 获取元素样式必杀技
May 04 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
Angularjs 动态改变title标题(兼容ios)
Dec 29 Javascript
基本DOM节点操作
Jan 17 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
Apr 25 Javascript
Angularjs中使用轮播图指令swiper
May 30 Javascript
浅谈js获取ModelAndView值的问题
Mar 28 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
Jul 25 Javascript
详解微信小程序用定时器实现倒计时效果
Apr 30 Javascript
es6数组includes()用法实例分析
Apr 18 Javascript
vue实现信息管理系统
May 30 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注释实例技巧
2008/10/03 PHP
linux php mysql数据库备份实现代码
2009/03/10 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
2012/10/06 PHP
关于PHP开发的9条建议
2015/07/27 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
javascript 正则表达式去空行方法
2017/01/24 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
利用百度echarts实现图表功能简单入门示例【附源码下载】
2019/06/10 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
用vue写一个日历
2020/11/02 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python3通过Luhn算法快速验证信用卡卡号的方法
2015/05/14 Python
详解Django中Request对象的相关用法
2015/07/17 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
python 生成器和迭代器的原理解析
2019/10/12 Python
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
小学生打架检讨书
2014/01/26 职场文书
暑期教师培训方案
2014/06/07 职场文书
药店促销活动策划方案
2014/08/24 职场文书
质监局领导班子对照检查材料思想汇报
2014/09/27 职场文书
2015入党自传书范文
2015/06/26 职场文书