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 相关文章推荐
些很实用且必用的小脚本代码
Jun 26 Javascript
许愿墙中用到的函数
Oct 07 Javascript
JavaScript 组件之旅(二)编码实现和算法
Oct 28 Javascript
javascript在事件监听方面的兼容性小结
Apr 07 Javascript
c#和Javascript操作同一json对象的实现代码
Jan 17 Javascript
javascript转换静态图片,增加粒子动画效果
May 28 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
Sep 06 Javascript
跟我学习javascript的函数调用和构造函数调用
Nov 16 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
Jul 18 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 Javascript
vue里面使用mui的弹出日期选择插件实例
Sep 16 Javascript
在Vue中使用axios请求拦截的实现方法
Oct 25 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
解析link_mysql的php版
2013/06/30 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
JavaScript 异步调用框架 (Part 2 - 用例设计)
2009/08/03 Javascript
jQuery中has()方法用法实例
2015/01/06 Javascript
用JavaScript实现PHP的urlencode与urldecode函数
2015/08/13 Javascript
jqGrid 学习笔记整理——进阶篇(一 )
2016/04/17 Javascript
js实现四舍五入完全保留两位小数的方法
2016/08/02 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
在Vue.js中使用Mixins的方法
2017/09/12 Javascript
JS实现的合并多个数组去重算法示例
2018/04/11 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
对angularjs框架下controller间的传值方法详解
2018/10/08 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
2019/10/17 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
100行python代码实现跳一跳辅助程序
2018/01/15 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
python 获得任意路径下的文件及其根目录的方法
2019/02/16 Python
详解Python 解压缩文件
2019/04/09 Python
PyQt5组件读取参数的实例
2019/06/25 Python
python 图片去噪的方法示例
2019/07/09 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
Python操作Jira库常用方法解析
2020/04/10 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
django 利用Q对象与F对象进行查询的实现
2020/05/15 Python
python两种获取剪贴板内容的方法
2020/11/06 Python
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
高考寄语大全
2014/04/08 职场文书
停车位租赁协议书
2014/09/24 职场文书
个人工作总结怎么写?
2019/04/09 职场文书