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


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 相关文章推荐
给网站上的广告“加速”显示的方法
Apr 08 Javascript
javascript函数库-集合框架
Apr 27 Javascript
JavaScript接口实现代码 (Interfaces In JavaScript)
Jun 11 Javascript
jquery 插件学习(四)
Aug 06 Javascript
iframe里的页面禁止右键事件的方法
Jun 10 Javascript
js淡入淡出的图片轮播效果代码分享
Aug 24 Javascript
基于JS实现省市联动效果代码分享
Jun 06 Javascript
jQuery实现磁力图片跟随效果完整示例
Sep 16 Javascript
JavaScript中各数制转换全面总结
Aug 21 Javascript
json2.js 入门教程之使用方法与实例分析
Sep 14 Javascript
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
Apr 21 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
snoopy 强大的PHP采集类使用实例代码
2010/12/09 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
php根据用户名和手机号查询是否存在手机号码
2017/02/16 PHP
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
Javascript基础教程之switch语句
2015/01/18 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
vue.js中过滤器的使用教程
2017/06/08 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
Python使用openpyxl读写excel文件的方法
2017/06/30 Python
python 系统调用的实例详解
2017/07/11 Python
Python探索之SocketServer详解
2017/10/28 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
Random 在 Python 中的使用方法
2018/08/09 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
几道PHP的面试题
2012/05/19 面试题
初中地理教学反思
2014/01/11 职场文书
函授毕业生自我鉴定范文
2014/03/25 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
个人整改措施落实情况汇报
2014/10/29 职场文书
承诺书模板大全
2015/05/04 职场文书
招商银行工作证明
2015/06/17 职场文书
使用refresh_token实现无感刷新页面
2022/04/26 Javascript
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android