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


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 MD4
Dec 20 Javascript
xtree.js 代码
Mar 13 Javascript
js几个验证函数代码
Mar 25 Javascript
Extjs4.0设置Ext.data.Store传参的请求方式(默认为GET)
Apr 02 Javascript
js字符串截取函数substr substring slice使用对比
Nov 27 Javascript
js验证IP及子网掩码的合法性有效性示例
Apr 30 Javascript
AngularJS基础 ng-switch 指令简单示例
Aug 03 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 Javascript
jQuery电话号码验证实例
Jan 05 Javascript
jQuery Validate表单验证插件实现代码
Jun 08 jQuery
微信小程序实现左侧滑栏过程解析
Aug 26 Javascript
VUE路由动态加载实例代码讲解
Aug 26 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开启安全模式后禁用的函数集合
2011/06/26 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php异步多线程swoole用法实例
2014/11/14 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
javascritp实现input输入框相关限制用法
2007/06/29 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
js Calender控件使用详解
2015/01/05 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
vue组件通信传值操作示例
2019/01/08 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
2020/07/23 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Python中变量交换的例子
2014/08/25 Python
Python使用urllib2模块实现断点续传下载的方法
2015/06/17 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
竞选班委演讲稿
2014/04/28 职场文书
小学教师读书活动总结
2014/07/08 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
质量主管工作职责
2014/09/26 职场文书
大学生安全教育主题班会
2015/08/12 职场文书
2016党校学习心得体会范文
2016/01/07 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
Python图片检索之以图搜图
2021/05/31 Python
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python