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


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绑定事件this指向发生改变的问题解决方法
Apr 23 Javascript
初识Node.js
Sep 03 Javascript
jquery专业的导航菜单特效代码分享
Aug 29 Javascript
vue图片加载与显示默认图片实例代码
Mar 16 Javascript
JS实现的简单四则运算计算器功能示例
Sep 27 Javascript
React中的refs的使用教程
Feb 13 Javascript
vue中的自定义分页插件组件的示例
Aug 18 Javascript
Vue组件中的data必须是一个function的原因浅析
Sep 03 Javascript
浅谈开发eslint规则
Oct 01 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
解决在layer.open中使用时间控件laydate失败的问题
Sep 11 Javascript
微信小程序实现侧边栏分类
Oct 21 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 self,$this,const,static,-&amp;gt;的使用
2009/10/22 PHP
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
PHP页面跳转实现延时跳转的方法
2016/12/10 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
JavaScript事件列表解说
2006/12/22 Javascript
ext for eclipse插件安装方法
2008/04/27 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
js实现随机点名程序
2020/09/17 Javascript
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
python requests证书问题解决
2019/09/05 Python
Python帮你识破双11的套路
2019/11/11 Python
有关pycharm登录github时有的时候会报错connection reset的问题
2020/09/15 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
六十大寿答谢词
2014/01/12 职场文书
更夫岗位责任制
2014/02/11 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
用人单位终止解除劳动合同证明书
2014/10/06 职场文书
单位租房协议范本
2014/12/03 职场文书
义卖募捐活动总结
2015/05/09 职场文书
政协工作总结2015
2015/05/20 职场文书
使用python如何删除同一文件夹下相似的图片
2021/05/07 Python
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python