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


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 相关文章推荐
这些年、我收集的JQuery代码小结
Aug 01 Javascript
解决html按钮切换绑定不同函数后点击时执行多次函数问题
May 14 Javascript
ECMAScript6函数默认参数
Jun 12 Javascript
node.js实现端口转发
Apr 14 Javascript
javascript变量提升和闭包理解
Mar 12 Javascript
关于vue编译版本引入的问题的解决
Sep 17 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
Oct 10 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
基于vue实现一个禅道主页拖拽效果
May 27 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
May 01 Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 Javascript
使用eslint和githooks统一前端风格的技巧
Jul 29 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函数
2008/10/03 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
php文件缓存类用法实例分析
2015/04/22 PHP
TP - 比RBAC更好的权限认证方式(Auth类认证)
2021/03/09 PHP
几个高效,简洁的字符处理函数
2007/04/12 Javascript
javascript 写类方式之八
2009/07/05 Javascript
JS 的应用开发初探(mootools)
2009/12/19 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
通过实例了解JS执行上下文运行原理
2020/06/17 Javascript
解决VUE-Router 同一页面第二次进入不刷新的问题
2020/07/22 Javascript
JSON stringify方法原理及实例解析
2020/10/23 Javascript
Python中属性和描述符的正确使用
2016/08/23 Python
PyQt5实现下载进度条效果
2018/04/19 Python
python批量获取html内body内容的实例
2019/01/02 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python实现的生成word文档功能示例
2019/08/23 Python
英国儿童鞋和靴子:Start-Rite
2019/05/06 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
英国领先的男装设计师服装独立零售商:Repertoire Fashion
2020/10/19 全球购物
数组越界问题
2015/10/21 面试题
介绍一下代理模式(Proxy)
2014/10/17 面试题
企业车辆管理制度
2014/01/24 职场文书
《乞巧》教学反思
2014/02/27 职场文书
愚人节活动策划方案
2014/03/11 职场文书
平安建设工作方案
2014/06/02 职场文书
2015年世界粮食日演讲稿
2015/03/20 职场文书
未婚证明范本
2015/06/15 职场文书