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


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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
Javascript继承(上)——对象构建介绍
Nov 08 Javascript
jQuery阻止事件冒泡具体实现
Oct 11 Javascript
js获取select选中的option的text示例代码
Dec 19 Javascript
js实现div弹出层的方法
Nov 20 Javascript
如何使用jquery easyui创建标签组件
Nov 18 Javascript
Javascript基础学习笔记(菜鸟必看篇)
Jul 22 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
Feb 13 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
Jul 07 Javascript
JavaScript设计模式之职责链模式应用示例
Aug 07 Javascript
vue-router的HTML5 History 模式设置
Sep 08 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
yii2学习教程之5种内置行为类详解
2017/08/03 PHP
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
jquery mobile的触控点击事件会多次触发问题的解决方法
2014/05/08 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
详解Vue整合axios的实例代码
2017/06/21 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
了解JavaScript表单操作和表单域
2019/05/27 Javascript
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
2020/11/06 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
Python基于回溯法子集树模板实现图的遍历功能示例
2017/09/05 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
快速了解Python开发环境Spyder
2020/06/29 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
财务会计应届生求职信
2013/11/24 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
期末自我鉴定
2014/02/02 职场文书
决心书标准格式
2014/03/11 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js