小程序点赞收藏功能的实现代码示例


Posted in Javascript onSeptember 07, 2018

本文介绍了小程序点赞收藏功能的实现代码示例,分享给大家,具体如下:

/收藏/

focusFavoriteTab: function (e) {
  var that = this;
  var isFocus = that.data.isFocus;
  console.log("isFocus", isFocus)
  var itemId = that.data.itemId;
  if (isFocus) {
   favoriteService.cancel(that, itemId).then((res) => {
    wx.showToast({
     title: "取消收藏",
     icon: 'success',
     duration: 1000
    });
    this.setData({
     isFocus: false,
    });
   })
  } else {
   favoriteService.add(that, itemId).then((res) => {
    wx.showToast({
     title: res.data == 1 ? "收藏成功" : "收藏失败",
     icon: 'success',
     duration: 1000
    });
    this.setData({
     isFocus: true,
    });
   });
  }
 },

/点赞/

focuslikeTab: function (e) {
  var that = this;
  var isLike = that.data.isLike;
  let itemDetail = this.data.itemDetail 
  var itemId = that.data.itemId;
  if (isLike) {
   itemService.cancellike(that, itemId).then((res) => {
    wx.showToast({
     title: "点赞取消",
     icon: 'success',
     duration: 1000
    });
    itemDetail.liked--;
    this.setData({
     itemDetail:itemDetail
    });
    this.setData({
     isLike: false,
    });
   })
  } else {
   itemService.addlike(that, itemId).then((res) => {
    wx.showToast({
     title: res.data == 1 ? "点赞成功" : "点赞失败",
     icon: 'success',
     duration: 1000
    });
    itemDetail.liked++;
    this.setData({
     itemDetail: itemDetail
    });
    this.setData({
     isLike: true,
    });
   });
  }
 },

取消点赞功能

/*更新点赞*/ 
 update_zan:function(e){ 
  var that = this; 
  var data = e.currentTarget.dataset; 
  var mid = data.mid; 
  var cookie_mid = wx.getStorageSync('zan') || [];//获取全部点赞的mid 
  var isadd = 1; 
  var newmessage = []; 
  if (cookie_mid.includes(mid)){//说明已经点过赞,取消赞 
   isadd = 0; 
   var m = 0; 
   for (var j in cookie_mid){ 
    if(cookie_mid[j] != mid){ 
     newmessage[m] = cookie_mid[j]; 
     m++ 
    } 
   } 
   wx.setStorageSync('zan', newmessage);//删除取消赞的mid 
  }else{ 
   cookie_mid.unshift(mid); 
   wx.setStorageSync('zan', cookie_mid);//新增赞的mid 
  } 
  wx.request({ 
   url: app.globalData.api.api_system, 
   data: { 
    action: 'zannum', 
    mid: mid, 
    isadd: isadd, 
    wxid: app.globalData.wxid 
   }, 
   method: 'GET', 
   // header: {},  
   success: function (res) { 
    var message = that.data.message; 
    for (var i in message) { 
     if(message[i].mid == mid){ 
      if(isadd){ 
       message[i].zan = parseInt(message[i].zan) + 1 
      }else{ 
       message[i].zan = parseInt(message[i].zan) - 1 
      } 
       
     } 
    } 
    that.setData({ 
     message: message 
    }) 
   } 
  })

重点注意代码:

(1)要把所有已经点过赞的留言id给存储到本地缓存之中,这样如果重复点赞的,就可以判断出来,并取消点赞,取消点赞的同时要去掉缓存中的id;

(2)新增点赞和取消点赞用到同一个api,通过isadd=1或者isadd=0来判断是新增还是取消点赞

(3)为了不频繁去读取留言列表,可以直接调用this.data.message,并通过循环遍历改变某个留言的点赞数,然后直接重新赋值,就能动态改变点赞数!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript concat数组累加 示例
Sep 03 Javascript
javascript数字格式化通用类 accounting.js使用
Aug 24 Javascript
js实现点小图看大图效果的思路及示例代码
Oct 28 Javascript
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
基于BootstrapValidator的Form表单验证(24)
Dec 12 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
JS中利用FileReader实现上传图片前本地预览功能
Mar 02 Javascript
浅谈Vue路由快照实现思路及其问题
Jun 07 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
使用TS来编写express服务器的方法步骤
Oct 29 Javascript
JavaScript架构搭建前端监控如何采集异常数据
Jun 25 Javascript
前端防止用户重复提交js实现代码示例
Sep 07 #Javascript
vue实现打印功能的两种方法
Sep 07 #Javascript
使用Angular-CLI构建NPM包的方法
Sep 07 #Javascript
详解如何构建一个Angular6的第三方npm包
Sep 07 #Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 #Javascript
Js中使用正则表达式验证输入是否有特殊字符
Sep 07 #Javascript
vue.js+element-ui动态配置菜单的实例
Sep 07 #Javascript
You might like
用PHP来写记数器(详细介绍)
2006/10/09 PHP
PHP学习笔记之二
2011/01/17 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
Laravel 5 框架入门(四)完结篇
2015/04/09 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
PHP微信红包API接口
2015/12/05 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
纯文字版返回顶端的js代码
2013/08/01 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
用原生js统计文本行数的简单示例
2016/08/19 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
jQuery插件FusionCharts绘制的3D环饼图效果示例【附demo源码】
2017/04/02 jQuery
详解vue跨组件通信的几种方法
2017/06/15 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
python正则表达式之作业计算器
2016/03/18 Python
Django 前后台的数据传递的方法
2017/08/08 Python
python删除本地夹里重复文件的方法
2020/11/19 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
简单了解python反射机制的一些知识
2019/07/13 Python
Python读取Excel一列并计算所有对象出现次数的方法
2020/09/04 Python
python sleep和wait对比总结
2021/02/03 Python
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
施工安全协议书
2013/12/11 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
倡议书格式模板
2014/05/13 职场文书
在职党员进社区活动总结
2014/07/05 职场文书