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


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 相关文章推荐
jqPlot Option配置对象详解
Jul 25 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
Feb 23 Javascript
javascript css styleFloat和cssFloat
Mar 15 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
浅谈JavaScript变量的自动转换和语句
Jun 12 Javascript
AngularJS 应用身份认证的技巧总结
Nov 07 Javascript
Vue.js基础知识小结
Jan 13 Javascript
微信小程序canvas写字板效果及实例
Jun 15 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 Javascript
VUE长按事件需求详解
Oct 18 Javascript
vue计算属性computed的使用方法示例
Mar 13 Javascript
Vue项目实现简单的权限控制管理功能
Jul 17 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
php你的验证码安全码?
2007/01/02 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
对于Laravel 5.5核心架构的深入理解
2018/02/22 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
2019/07/07 Javascript
基于JavaScript实现大文件上传后端代码实例
2020/08/18 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python监控进程脚本
2018/04/12 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
python字典嵌套字典的情况下找到某个key的value详解
2019/07/10 Python
python中的subprocess.Popen()使用详解
2019/12/25 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Python MySQL 日期时间格式化作为参数的操作
2020/03/02 Python
详解Open Folder as PyCharm Project怎么添加的方法
2020/12/29 Python
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
个人求职信范文分享
2013/12/13 职场文书
百度吧主申请感言
2014/01/12 职场文书
《路旁的橡树》教学反思
2014/04/07 职场文书
大学生社团活动总结
2014/04/26 职场文书
节能宣传周活动总结
2014/05/08 职场文书
综治工作汇报材料
2014/10/27 职场文书
中学生逃课检讨书
2015/02/17 职场文书
工作态度恶劣检讨书
2015/05/06 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
win10双系统怎么删除一个系统?win10电脑有两个系统删除一个的操作方法
2022/07/15 数码科技