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


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 相关文章推荐
一些常用弹出窗口/拖放/异步文件上传等实用代码
Jan 06 Javascript
使用jQuery中的when实现多个AJAX请求对应单个回调的例子分享
Apr 23 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
Feb 02 Javascript
网页收藏夹显示ICO图标(代码少)
Aug 04 Javascript
js实现跨域的多种方法
Dec 25 Javascript
jquery实现列表上下移动功能
Feb 25 Javascript
JS简单实现禁止访问某个页面的方法
Sep 13 Javascript
通过原生JS实现为元素添加事件的方法
Nov 23 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
js设计模式之单例模式原理与用法详解
Aug 15 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
Dec 21 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 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修改NetBeans默认字体的大小
2013/07/02 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
for 循环性能比较 提高for循环的效率
2009/03/19 Javascript
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
javascript smipleChart 简单图标类
2011/01/12 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
python 网络编程常用代码段
2016/08/28 Python
python3.x上post发送json数据
2018/03/04 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python缓存技术实现过程详解
2019/09/25 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
nohup的用法
2012/11/26 面试题
简历中自我评价分享
2013/10/09 职场文书
外贸业务员求职信
2014/06/16 职场文书
领导班子四风表现材料
2014/08/23 职场文书
谢师宴学生答谢词
2015/09/30 职场文书
golang 比较浮点数的大小方式
2021/05/02 Golang
超级详细实用的pycharm常用快捷键
2021/05/12 Python
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python
Nginx本地配置SSL访问的实例教程
2022/05/30 Servers