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


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与C# Windows应用程序交互方法
Jun 29 Javascript
JavaScript 字符编码规则
May 04 Javascript
Mootools 1.2教程(21)——类(二)
Sep 15 Javascript
jquery插件之easing 动态菜单
Aug 21 Javascript
js实现键盘Enter键提交表单的方法
May 27 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
Dec 28 Javascript
Bootstrap CDN和本地化环境搭建
Oct 26 Javascript
js实现下拉框效果(select)
Mar 28 Javascript
jquery拖动改变div大小
Jul 04 jQuery
微信小程序实现打开内置地图功能【附源码下载】
Dec 07 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 Javascript
vue.js实现备忘录demo
Jun 26 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可能遇到的问题“无法载入mysql扩展” 的解决方法
2007/04/16 PHP
Yii框架登录流程分析
2014/12/03 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
JS代码实现table数据分页效果
2016/05/26 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
canvas绘制多边形
2017/02/24 Javascript
angular2中Http请求原理与用法详解
2018/01/11 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
2018/03/27 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
js实现随机圆与矩形功能
2020/10/29 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
django-初始配置(纯手写)详解
2019/07/30 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
django 多对多表的创建和插入代码实现
2019/09/09 Python
python中树与树的表示知识点总结
2019/09/14 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
8种常用的Python工具
2020/08/05 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
python math模块的基本使用教程
2021/01/16 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
大学生大二自我鉴定
2013/10/28 职场文书
高中生家长寄语大全
2014/04/03 职场文书
公司募捐倡议书
2014/05/14 职场文书
2015年办公室工作总结范文
2015/03/31 职场文书
2015年检察院个人工作总结
2015/05/20 职场文书
Python实现简单得递归下降Parser
2022/05/02 Python