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 相关文章推荐
use jscript List Installed Software
Jun 11 Javascript
JavaScript 常用函数
Dec 30 Javascript
JavaScript按值删除数组元素的方法
Apr 24 Javascript
JS实现的简洁纵向滑动菜单(滑动门)效果
Oct 19 Javascript
js实现图片无缝滚动
Dec 23 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
May 10 Javascript
Bootstrap分页插件之Bootstrap Paginator实例详解
Oct 15 Javascript
vuex提交state&amp;&amp;实时监听state数据的改变方法
Sep 16 Javascript
JavaScript 实现同时选取多个时间段的方法
Oct 17 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
May 31 Javascript
vue接口请求加密实例
Aug 11 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
Protoss兵种介绍
2020/03/14 星际争霸
php使用curl访问https示例分享
2014/01/17 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php微信支付接口开发程序
2016/08/02 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
jQuery+CSS实现简单切换菜单示例
2016/07/27 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
backbone简介_动力节点Java学院整理
2017/07/14 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
使用vue3重构拼图游戏的实现示例
2021/01/25 Vue.js
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python操作redis方法总结
2018/06/06 Python
利用pyshp包给shapefile文件添加字段的实例
2019/12/06 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
英国电动工具购买网站:Anglia Tool Centre
2017/04/25 全球购物
Farnell德国:电子元器件供应商
2018/07/10 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
澳大利亚美容产品及化妆品在线:Activeskin
2020/06/03 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
采购部岗位职责
2013/11/24 职场文书
《正比例》教学反思
2016/02/23 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript