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


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 相关文章推荐
javascript中字符串拼接需注意的问题
Jul 13 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
详解JavaScript函数对象
Nov 15 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
Sequelize中用group by进行分组聚合查询
Dec 12 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
Mar 27 Javascript
JavaScript之underscore_动力节点Java学院整理
Jul 03 Javascript
Bootstrap实现可折叠分组侧边导航菜单
Mar 07 Javascript
js实现点击按钮复制文本功能
Jul 20 Javascript
vue+element项目中过滤输入框特殊字符小结
Aug 07 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
Dec 15 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
MySQL相关说明
2007/01/15 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
基于PHP实现通过照片获取ip地址
2016/04/26 PHP
php版微信公众号自定义分享内容实现方法
2016/09/22 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
Dom 是什么的详细说明
2010/10/25 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
Javascript拓展String方法小结
2013/07/08 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
css3 border-radius属性详解
2017/07/05 HTML / CSS
英国礼品和生活方式品牌:Treat Republic
2020/11/21 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
学术会议邀请函范文
2014/01/22 职场文书
股份合作协议书范本
2014/04/14 职场文书
四年级评语大全
2014/04/21 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
2019最新公司租房合同(例文)
2019/07/18 职场文书