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 相关文章推荐
jQuery Tools tab(幻灯片)
Jul 14 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
Dec 10 Javascript
js动态修改input输入框的type属性(实现方法解析)
Nov 13 Javascript
使用javascript做的一个随机点名程序
Feb 13 Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 Javascript
js省市联动效果完整实例代码
Dec 09 Javascript
解析如何利用iframe标签以及js制作时钟
Dec 08 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
JS通过调用微信API实现微信支付功能的方法示例
Jun 29 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
Sep 27 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
详解async/await 异步应用的常用场景
May 13 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 第二节 数据类型之数组
2012/04/28 PHP
php实现下载限制速度示例分享
2014/02/13 PHP
php 字符串中的\n换行符无效、不能换行的解决方法
2014/04/02 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
CodeIgniter配置之autoload.php自动加载用法分析
2016/01/20 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
jQuery中大家不太了解的几个方法
2015/03/04 Javascript
jQuery实现类似标签风格的导航菜单效果代码
2015/08/25 Javascript
jquery+CSS3模拟Path2.0动画菜单效果代码
2015/08/31 Javascript
js命名空间写法示例
2015/12/18 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
js装饰设计模式学习心得
2018/02/17 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
[49:08]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python 循环while和for in简单实例
2016/08/16 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python3实现带附件的定时发送邮件功能
2020/12/22 Python
python方法生成txt标签文件的实例代码
2018/05/10 Python
python学生管理系统开发
2019/01/30 Python
python快速编写单行注释多行注释的方法
2019/07/31 Python
python中前缀运算符 *和 **的用法示例详解
2020/05/28 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
如何删除一个表里面的重复行
2013/07/13 面试题
新闻网站实习自我鉴定
2013/09/25 职场文书
追悼会子女答谢词
2014/01/28 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
2015年保送生自荐信
2015/03/24 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
年会主持人开场白台词
2015/05/29 职场文书
运动会广播稿100字
2015/08/19 职场文书
参观监狱警示教育心得体会
2016/01/15 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
超级详细实用的pycharm常用快捷键
2021/05/12 Python
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript