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


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 相关文章推荐
双击滚屏-常用推荐
Nov 29 Javascript
告诉大家什么是JSON
Jun 10 Javascript
javascript css styleFloat和cssFloat
Mar 15 Javascript
jQuery选中select控件 无法设置selected的解决方法
Sep 01 Javascript
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
jQuery把表单元素变为json对象
Nov 06 Javascript
使用原生js写的一个简单slider
Apr 29 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
Sep 01 Javascript
原生javascript实现匀速运动动画效果
Feb 26 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
Oct 31 Javascript
React注册倒计时功能的实现
Sep 06 Javascript
微信小程序webSocket的使用方法
Feb 20 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
《星际争霸》各版本雷兽特点图文解析 雷兽不同形态一览
2020/03/02 星际争霸
PHP 内存缓存加速功能memcached安装与用法
2009/09/03 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
window.location.hash知识汇总
2015/11/09 Javascript
jQuery日历插件datepicker用法详解
2016/03/03 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
shiro授权的实现原理
2017/09/21 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
Element Input输入框的使用方法
2020/07/26 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
python如何实现数据的线性拟合
2019/07/19 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
python模块如何查看
2020/06/16 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
全球知名旅游社区法国站点:TripAdvisor法国
2016/08/03 全球购物
Boolean b = new Boolean(“abcde”); 会编译错误码
2013/11/27 面试题
小学教师的自我评价范例
2013/10/31 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
广告语设计及教案
2014/03/21 职场文书
三年级小学生评语
2014/04/22 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
买房协议书范本
2014/10/23 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
春节慰问信范文
2015/02/15 职场文书
Go Plugins插件的实现方式
2021/08/07 Golang
Python利用capstone实现反汇编
2022/04/06 Python