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


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 相关文章推荐
本人自用的global.js库源码分享
Feb 28 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 Javascript
TypeScript入门-基本数据类型
Mar 28 Javascript
xmlplus组件设计系列之树(Tree)(9)
May 02 Javascript
angular-tree-component的使用详解
Jul 30 Javascript
vue2.0获取鼠标位置的方法
Sep 13 Javascript
vue ssr服务端渲染(小白解惑)
Nov 10 Javascript
js实现蒙版效果
Jan 11 Javascript
js this 绑定机制深入详解
Apr 30 Javascript
Jquery $.map使用方法实例详解
Sep 01 jQuery
Vue实现随机验证码功能
Dec 29 Vue.js
记一次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+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
2013/06/17 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
10个php函数实用却不常见
2015/10/13 PHP
2款PHP无限级分类实例代码
2015/11/11 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
javascript 循环读取JSON数据的代码
2010/07/17 Javascript
jquery连缀语法如何实现
2012/11/29 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
JS传参及动态修改页面布局
2017/04/13 Javascript
Vue表单类的父子组件数据传递示例
2018/05/03 Javascript
react实现换肤功能的示例代码
2018/08/14 Javascript
vue中子组件传递数据给父组件的讲解
2019/01/27 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
python实现大转盘抽奖效果
2019/01/22 Python
详解Python实现进度条的4种方式
2020/01/15 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
利用python汇总统计多张Excel
2020/09/22 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
传统HTML页面实现模块化加载的方法
2018/10/15 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
党员公开承诺书内容
2014/05/20 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
2019年大学生职业生涯规划书最新范文
2019/03/25 职场文书
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python