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 相关文章推荐
ext 同步和异步示例代码
Sep 18 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
Apr 15 Javascript
js鼠标及对象坐标控制属性详细解析
Dec 14 Javascript
浅谈被jQuery抛弃的函数及替代函数
May 03 Javascript
深入理解ECMAScript的几个关键语句
Jun 01 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
概述jQuery中的ajax方法
Dec 16 Javascript
AngularJS中的按需加载ocLazyLoad示例
Jan 11 Javascript
BootStrap daterangepicker 双日历控件
Jun 02 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
Jun 28 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
如何在项目中使用log4.js的方法步骤
Jul 16 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 cout&amp;lt;&amp;lt;的一点看法
2010/01/24 PHP
php顺序查找和二分查找示例
2014/03/27 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
php字符串分割函数用法实例
2015/03/17 PHP
php去掉文件前几行的方法
2015/07/29 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
JavaScript 语言的递归编程
2010/05/18 Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
2010/12/02 Javascript
jQuery滚动加载图片效果的实现
2013/03/06 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
jQuery解析Json实例详解
2015/11/24 Javascript
jQuery实现每隔几条元素增加1条线的方法
2016/06/27 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
Vue前端开发规范整理(推荐)
2018/04/23 Javascript
bootstrap 路径导航 分页 进度条的实例代码
2018/08/06 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
Python实现的单向循环链表功能示例
2017/11/10 Python
python库matplotlib绘制坐标图
2019/10/18 Python
python中数据库like模糊查询方式
2020/03/02 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
初二政治教学反思
2014/01/12 职场文书
工作表现自我评价
2014/02/08 职场文书
婚庆公司计划书
2014/09/15 职场文书
高校教师个人总结
2015/02/10 职场文书
电影建国大业观后感
2015/06/01 职场文书
Redis 配置文件重要属性的具体使用
2021/05/20 Redis
MySQL七种JOIN类型小结
2021/10/24 MySQL