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


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 相关文章推荐
JS 参数传递的实际应用代码分析
Sep 13 Javascript
js特殊字符过滤的示例代码
Mar 05 Javascript
JavaScript函数使用的基本教程
Jun 04 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
Aug 15 Javascript
JavaScript 闭包机制详解及实例代码
Oct 10 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
May 12 Javascript
vue 弹框产生的滚动穿透问题的解决
Sep 21 Javascript
vue2.0移动端滑动事件vue-touch的实例代码
Nov 27 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
Apr 30 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
Apr 08 Javascript
swiper4实现移动端导航栏tab滑动切换
Oct 16 Javascript
js仿淘宝放大镜效果
Dec 28 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下实现伪 url 的超简单方法[转]
2007/09/24 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
2017/04/18 PHP
PHP7移除的扩展和SAPI
2021/03/09 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
2015/08/11 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
解决vue2.x中数据渲染以及vuex缓存的问题
2017/07/13 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
Vue中img的src是动态渲染时不显示的解决
2019/11/14 Javascript
[39:08]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第一场 12.12
2020/12/16 DOTA
haskell实现多线程服务器实例代码
2013/11/26 Python
利用PyTorch实现VGG16教程
2020/06/24 Python
python 实现两个npy档案合并
2020/07/01 Python
python基于pygame实现飞机大作战小游戏
2020/11/19 Python
python selenium 获取接口数据的实现
2020/12/07 Python
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
咖啡馆创业计划书
2014/01/26 职场文书
小学生节约用水倡议书
2014/05/15 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
2014年实习生工作总结
2014/11/27 职场文书
现实表现材料范文
2014/12/23 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技
Oracle中日期的使用方法实例
2022/07/07 Oracle