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


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 仿QQ校友的DIV模拟窗口效果源码
Mar 24 Javascript
在javascript将NodeList作为Array数组处理的方法
Jul 09 Javascript
javascript设计模式 接口介绍
Jul 24 Javascript
javascript:void(0)是什么意思示例介绍
Nov 17 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
Js可拖拽放大的层拖动特效实现方法
Feb 25 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
JS动态加载脚本并执行回调操作
Aug 24 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
JS实现字符串翻转的方法分析
Aug 31 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 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/03/25 PHP
php判断类是否存在函数class_exists用法分析
2014/11/14 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
浅谈node的事件机制
2017/10/09 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
2020/02/24 Javascript
Array.filter中如何正确使用Async
2020/11/04 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
python 自定义装饰器实例详解
2019/07/20 Python
python实现桌面托盘气泡提示
2019/07/29 Python
pytorch中的embedding词向量的使用方法
2019/08/18 Python
python3 字符串知识点学习笔记
2020/02/08 Python
HTML5中的nav标签学习笔记
2016/06/24 HTML / CSS
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
会议欢迎标语
2014/06/30 职场文书
演讲稿开场白台词
2014/08/25 职场文书
2015年销售人员工作总结
2015/04/07 职场文书
会议主持词开场白
2015/05/28 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
2019财务管理制度最新范本!
2019/07/09 职场文书
多人盗宝《绿林侠盗》第三赛季4.5上线 跨平台实装
2022/04/03 其他游戏