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与google map api结合使用 控件,监听器
Mar 04 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
Sep 13 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
Aug 27 Javascript
jquery Validation表单验证使用详解
Sep 12 Javascript
基于jQuery实现选项卡效果
Jan 04 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 Javascript
JS验证input输入框(字母,数字,符号,中文)
Mar 23 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
May 21 Javascript
三种Webpack打包方式(小结)
Sep 19 Javascript
JavaScript实现的级联算法示例【省市二级联动功能】
Dec 25 Javascript
浅谈JavaScript闭包
Apr 09 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 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
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
React-router中结合webpack实现按需加载实例
2017/05/25 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
详解vue 组件
2020/06/11 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
tensorflow实现softma识别MNIST
2018/03/12 Python
python3.6实现学生信息管理系统
2019/02/21 Python
Python实现随机生成任意数量车牌号
2020/01/21 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
本科生个人求职自荐信
2013/09/26 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
医疗纠纷协议书
2014/04/16 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
2014年施工员工作总结
2014/11/18 职场文书
安全承诺书
2015/01/19 职场文书
自荐信怎么写
2015/03/04 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
政府会议通知范文
2015/04/15 职场文书
孔子观后感
2015/06/08 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书