微信小程序收藏功能的实现代码


Posted in Javascript onJune 19, 2020

统一回复,这是我很久以前学习小程序时做的项目,当时是没问题的,最近很多人评论说收藏功能实现不了,但是因为工作原因没空弄

以下是我当时自学小程序的视频地址,里面有收藏的功能的视频,如有需要可以去看看
添加链接描述

detail.wxml中的收藏图标添加属性:

微信小程序收藏功能的实现代码

catchtap是点击事件,wx:if的用法如下:

微信小程序收藏功能的实现代码

detail.js

data: {
  detailObj:{},
  index:null,
  // 是否收藏
  isCollected:false
 },
 handleCollection(){
  let isCollected = !this.data.isCollected
  this.setData({
   // 下面本来是这样子的:isCollected=isCollected,可以简写
   isCollected
  })
  //提示用户
  wx.showToast({
    title: isCollected ? '收藏成功' : '取消收藏',
    icon:'success'
  })
 },

结果图

微信小程序收藏功能的实现代码微信小程序收藏功能的实现代码

看起来是可以了,但是不难发现当你退出页面再进来按钮又被重置了…
所以我们要把按钮状态保存下来.在handleCollection函数中继续添加:

//点击收藏图标后缓存数据到本地
  //把data中的index放到新let出来的index中,因为下面要把index也存进去,要用index来判断你收藏了哪个页面
  let { index } = this.data;
  
  //首先去看一下缓存的数据
  wx.getStorage({
   key:'isCollected',
   success:(data)=>{
    let obj = data.data;
    //如果有,则刷新,没有则追加
    obj[index] = isCollected;
    wx.setStorage({
     key: 'isCollected',
     data: obj,
     success: () => {

     }
    });
   }
  })

onLoad生命周期函数中添加逻辑:

//根据本地缓存的数据判读用户是否收藏当前文章
  let detailStorage = wx.getStorageSync('isCollected')
  //如果没有收藏
  if (!detailStorage){
   //初始化一个空的对象
   wx.setStorageSync('isCollected', {});
  }
  //如果收藏了
  if (detailStorage[index]){
   this.setData({
    isCollected: true
   })
  }

总结

到此这篇关于微信小程序收藏功能的实现代码的文章就介绍到这了,更多相关微信小程序收藏功能内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
让复选框只能选择一项的方法
Oct 08 Javascript
用jQuery toggleClass 实现鼠标移上变色
May 14 Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 Javascript
Javascript变量的作用域和作用域链详解
Apr 02 Javascript
实例详解ECMAScript5中新增的Array方法
Apr 05 Javascript
jquery siblings获取同辈元素用法实例分析
Jul 25 Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 Javascript
JavaScript Date对象应用实例分享
Oct 30 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
React中使用外部样式的3种方式(小结)
May 28 Javascript
angularjs请求数据的方法示例
Aug 06 Javascript
微信小程序实现搜索框功能及踩过的坑
Jun 19 #Javascript
微信小程序返回上一级页面的实现代码
Jun 19 #Javascript
小程序中的箭头函数的具体使用
Jun 19 #Javascript
在VUE style中使用data中的变量的方法
Jun 19 #Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 #Javascript
原生JS实现微信通讯录
Jun 18 #Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 #Javascript
You might like
如何写php程序?
2006/12/08 PHP
PHP 分页类(模仿google)-面试题目解答
2009/09/13 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
php中数字0和空值的区别分析
2014/06/05 PHP
php微信公众号开发(4)php实现自定义关键字回复
2016/12/15 PHP
laravel框架与其他框架的详细对比
2019/10/23 PHP
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
Node.js实用代码段之正确拼接Buffer
2016/03/17 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
DOM操作原生js 的bug,使用jQuery 可以消除的解决方法
2016/09/04 Javascript
详解AngularJS中ng-src指令的使用
2016/09/07 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
Bootstrap模态对话框用法简单示例
2018/08/31 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
python实现ipsec开权限实例
2014/11/11 Python
python将unicode转为str的方法
2017/06/21 Python
python实现ID3决策树算法
2017/12/20 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
PyTorch的深度学习入门之PyTorch安装和配置
2019/06/27 Python
python开发前景如何
2020/06/11 Python
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
公司寄语大全
2014/04/10 职场文书
中秋寄语大全
2014/04/11 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
2014年园林绿化工作总结
2014/12/11 职场文书
项目战略合作意向书
2015/05/08 职场文书
党课主持词大全
2015/06/30 职场文书
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL