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


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 嵌套函数指向this对象错误的解决方法
Mar 15 Javascript
js页面跳转常用的几种方式
Nov 25 Javascript
setTimeout()与setInterval()方法区别介绍
Dec 24 Javascript
jQuery实现邮箱下拉列表自动补全功能
Sep 08 Javascript
DropDownList实现可输入可选择(两种版本可选)
Dec 07 Javascript
javascript中递归的两种写法
Jan 17 Javascript
vue 的keep-alive缓存功能的实现
Mar 22 Javascript
Angular angular-file-upload文件上传的示例代码
Aug 23 Javascript
Angular6 正则表达式允许输入部分中文字符
Sep 10 Javascript
JavaScript设计模式之代理模式实例分析
Jan 16 Javascript
JS实现继承的几种常用方式示例
Jun 22 Javascript
JS字符串常用操作方法实例小结
Jun 24 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网页显示各种语法错误
2013/09/23 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
js可突破windows弹退效果代码
2008/08/09 Javascript
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
jquery为页面增加快捷键示例
2014/01/31 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JS实现滑动门效果的方法详解
2016/12/19 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
javascript实现文件拖拽事件
2018/03/29 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
express框架下使用session的方法
2019/07/31 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:05:30]VP vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python实现简单的代理服务器
2015/07/25 Python
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
python3.6+django2.0开发一套学员管理系统
2018/03/03 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
pandas将list数据拆分成行或列的实现
2020/12/13 Python
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
公证委托书大全
2014/04/04 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
学校德育工作总结2015
2015/05/11 职场文书
礼仪培训心得体会
2016/01/22 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python
一文简单了解MySQL前缀索引
2022/04/03 MySQL