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


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设置FieldSet展开与收缩
May 15 Javascript
页面版文本框智能提示JS代码
Nov 20 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
Aug 14 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
Nov 07 Javascript
jQuery 1.9移除了$.browser可以使用$.support来替代
Sep 03 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
浅谈jQuery 选择器和dom操作
Jun 07 Javascript
js禁止Backspace键使浏览器后退的实现方法
Sep 01 Javascript
json前后端数据交互相关代码
Sep 19 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
Jun 13 Javascript
如何提升vue.js中大型数据的性能
Jun 21 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
Jun 23 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递归调用与静态变量使用
2012/12/16 PHP
php用户注册页面利用js进行表单验证具体实例
2013/10/17 PHP
php中有关字符串的4个函数substr、strrchr、strstr、ereg介绍和使用例子
2014/04/24 PHP
Symfony生成二维码的方法
2016/02/04 PHP
thinkphp项目部署到Linux服务器上报错“模板不存在”如何解决
2016/04/27 PHP
PHP命令Command模式用法实例分析
2018/08/08 PHP
用js怎么把&字符换成"&amp:"
2006/10/19 Javascript
JavaScript初学者应注意的七个细节详细介绍
2012/12/27 Javascript
DIV+CSS+JS不间断横向滚动实现代码
2013/03/19 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
基于JS实现bookstore静态页面的实例代码
2017/02/22 Javascript
JS删除数组里的某个元素方法
2018/02/03 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
python抓取最新博客内容并生成Rss
2015/05/17 Python
使用GitHub和Python实现持续部署的方法
2019/05/09 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
python 函数中的参数类型
2020/02/11 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
HTML5的download属性详细介绍和使用实例
2014/04/23 HTML / CSS
飞利浦西班牙官方网站:Philips西班牙
2020/02/17 全球购物
写好求职信第一句话的技巧
2013/10/26 职场文书
初中校园广播稿
2014/02/02 职场文书
商场促销活动方案
2014/02/08 职场文书
公务员更新知识培训实施方案
2014/03/31 职场文书
新年爱情寄语
2014/04/08 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
团队精神的演讲稿
2014/05/14 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技