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


Posted in Javascript onJune 12, 2018

需求

点击收藏后显示已收藏,在另一个页面出现目前点击收藏的项目

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

需要解决的问题

  1. 点击收藏后需要显示已收藏,并且文字状态改变
  2. 另一个页面如何知道你点击了收藏,并且获得你点击收藏的数据

如何解决?

  1. 数据状态绑定,并且由状态控制样式(三元运算符)
  2. 缓存(setStorageSync,getStorageSync),点击页面设置缓存(数据的id),显示页面获取缓存,通过获得缓存id,将整个数据中的获得的id那一项,取出,放入新的数组

具体实现

wxml

<image class="save " src="{{isClick?'../../youzan-image/save-s.png':'../../youzan-image/save.png'}}" bindtap="haveSave"></image>
   <text class="saveText">{{isClick?'已收藏':'收藏'}}</text>

点击页面js

Page({
  data: {
  job: [],
  jobList: [],
  id: '',
  isClick: false,
  jobStorage: [],
  jobId: ''
  },
  haveSave(e) {
  if (!this.data.isClick == true) {
   let jobData = this.data.jobStorage;
   jobData.push({
   jobid: jobData.length,
   id: this.data.job.id
   })
   wx.setStorageSync('jobData', jobData);//设置缓存
   wx.showToast({
   title: '已收藏',
   });
  } else {
   wx.showToast({
   title: '已取消收藏',
   });
  }
  this.setData({
   isClick: !this.data.isClick
  })
  }
 })

显示页面js

import jobList from '../../api/detail'
Page({
 data: {
 id:'',
 job:[],
 savejob:[],
 },
 onLoad: function (options) {
 console.log(wx.getStorageSync('jobData'));
 let savejob = wx.getStorageSync('jobData')//获得缓存
 let index = savejob.length-1;
 console.log(savejob[index].id);
 let jobid = savejob[index].id
 let temp= jobList[jobid] //将获得缓存后匹配的数据放入新的数组
 let job= [];
 job.push(temp);
 this.setData({
  id:index,
  job: job,
 })
 },
})

总结

以上所述是小编给大家介绍的微信小程序收藏功能的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JS获取IP、MAC和主机名的五种方法
Nov 14 Javascript
JS替换文本域内的回车示例
Feb 18 Javascript
浅谈JavaScript for循环 闭包
Jun 22 Javascript
AngularJS表单验证中级篇(3)
Sep 28 Javascript
使用ionic切换页面卡顿的解决方法
Dec 16 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
React Native如何消除启动时白屏的方法
Aug 08 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
Jan 08 Javascript
通过js给网页加上水印背景实例
Jun 17 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
Jul 15 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
Nov 16 Javascript
使用compose函数优化代码提高可读性及扩展性
Jun 16 Javascript
记一次webpack3升级webpack4的踩坑经历
Jun 12 #Javascript
webpack4之SplitChunksPlugin使用指南
Jun 12 #Javascript
详解webpack4升级指南以及从webpack3.x迁移
Jun 12 #Javascript
webpack分离css单独打包的方法
Jun 12 #Javascript
详解extract-text-webpack-plugin 的使用及安装
Jun 12 #Javascript
webpack 样式加载的实现原理
Jun 12 #Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
Jun 12 #Javascript
You might like
PHP7 其他语言层面的修改
2021/03/09 PHP
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
angular2模块和共享模块详解
2018/04/08 Javascript
了解ESlint和其相关操作小结
2018/05/21 Javascript
Vue项目pdf(base64)转图片遇到的问题及解决方法
2018/10/19 Javascript
JavaScrip数组去重操作实例小结
2019/06/20 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
JavaScript Array.flat()函数用法解析
2020/09/02 Javascript
Python实现在线音乐播放器
2017/03/03 Python
Python 登录网站详解及实例
2017/04/11 Python
virtualenv实现多个版本Python共存
2017/08/21 Python
python中Apriori算法实现讲解
2017/12/10 Python
django如何通过类视图使用装饰器
2019/07/24 Python
pandas如何处理缺失值
2019/07/31 Python
Python 切分数组实例解析
2019/11/07 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
Linux中如何用命令创建目录
2015/01/12 面试题
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
UNIX文件系统常用命令
2012/05/25 面试题
电子商务应届生求职信
2013/11/16 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
学校宣传标语
2014/06/18 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
继承公证书格式
2015/01/26 职场文书
教师节倡议书2015
2015/04/27 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
小学四年级作文之写景
2019/08/23 职场文书