什么是本地存储

pc端

本地存储是H5新增的API,用来在本地存储数据,在不影响服务器性能的情况下来在本地存储数据

微信小程序存储

需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。

pc端与微信小程序区别

使用区别

pc端设置localStorage.setItem ("key","存放的内容")
pc端的获取localStorage.getItem ("key")

注意: data 属性需要注意
需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。
意思我们可以把对象或数组通过JSON的格式转为JSON字符串存储起来,这样变相的我们就可以存储数组或字符串了哦

小程序设置
wx.setStorage({key:"key",data:"要存放的数据"
})

如果有key属性存储的数据它会执行 success函数 , 诺没有它将执行fail这个函数,
反正大家记住,属性key如果有数据并且定义了就执行 success 诺 没有 定义 并且没有数据 就执行fail函数方法

小程序获取
wx.getStorage({key: 'key',success (res) {console.log(res)  },fail(res){这里执行key没有并且没有数据返回时调用
}
})

案例

我这里做的收藏按钮和加入购物车都有使用到微信小程序AP内的本地存储功能

思路

大家假设我本地存储初始化肯定没有保存任何数据,当我第一次点击收藏或者加入购物车的时候,触发
点击事件.

当我每次点击,我就查看本地存储内car属性有没有数据,如果有它会触发success函数,如诺没有它一定触发fail函数.
如果触发fail那就说明必定内部没有数据,我们可以利用函数触发特性来添加我们想存储的字符串数据.

我们主要用本地存储来存放我们商品的id号,当到了购物车页面再通过拿取本地存储数据,获取我们对应ID的商品遍历到购物车页面

注意: 但是顾客很大程度不会只买一件商品,这时候我们就需要可以大量存储ID的方法了
而小程序的存储支持我们JSON字符串的格式
而且 第一次收藏或加入购物必定触发wx.getStorage函数中的fail
故先定义一个数组,将被点击收藏或加入购物车的商品ID push到定义的数组内,再将数组转换为JSON字符串,设置到属性名为car的本地存储,这样就实现了,多商品的存储.

 addCar(){let _this = thislet flag = false// 获取本地存储wx.getStorage({key: 'car',success ({data}) {console.log(data)data.forEach((item)=>{flag = true// 诺发现有与自己id相同的商品直接加入不再做第二次添加存储if(item.goods_id == _this.data.shopInfo.goods_id){wx.setStorage({key:"car",data:data})flag = falsereturn}})// 如果没发现有和自己id相同的商品直接加入到存储中if(flag){data.push({goods_id:_this.data.shopInfo.goods_id})console.log(data)JSON.stringify(data)wx.setStorage({key:"car",data:data})}},fail (res){let arr = []// () 内是我详情页点击的商品IDarr.push({goods_id:_this.data.shopInfo.goods_id})JSON.stringify(arr)wx.setStorage({key:"car",data:arr})console.log(res)console.log(arr)}})},

注意:
let _ this = this 是因为再往里的函数获取不到外层this指向,如果不给变那里面的this指向undefined
会报错

同样的商品我们不可能让用户无限制的添加到本地存储内这时候我们就需要做一层拦截了
所以我定义了变量flag

如果我点击触发success函数本地必定有值,我就判断有没有和我data存放的商品ID一样的如果有我不做别的操作直接再设置回本地存储,诺没有,我就将它加入push到本地存储.这样就实现了收藏或购物车功能

总结

有想法就去实行,行动,不行咱们再相别的方法解决.思维是想出来的但也是实际行动,实践出来的,真理的唯一检验标准就是实践,大家今天学慧了吗

微信小程序本地存储的学习和实践案例的讲解相关推荐

  1. 微信小程序本地存储存储_如何利用本地存储构建快速的应用程序

    微信小程序本地存储存储 by Nikita Kozlov 由Nikita Kozlov 如何利用本地存储构建快速的应用程序 (How to leverage Local Storage to buil ...

  2. 微信小程序—本地存储

    微信小程序-本地存储 作者:邱名涛 撰写时间:2019 年10 月24日 技术要点:在没有服务器的情况下,将数据存储到本地-wx.setStorageSync --这次我要实现点击收藏按钮把对应的文章 ...

  3. 微信小程序 本地存储

    我们知道,在HTML5中,新加入了localStorage本地存储功能,解决了cookie空间不足的问题(存储空间为4k),localStorage一般则支持5M的存储空间(不同浏览器中会有些不同). ...

  4. 微信小程序 本地存储

    1. 微信小程序中的本地存储:wx.setStorageSync("key","value") - 读取时的key必须与存储时的key相同,才能取出需要的数据. ...

  5. 微信小程序——本地存储

    4.6 本地数据缓存 本地数据缓存是小程序存储在当前设备上硬盘上的数据,本地数据缓存有非常多的用途,我们可以利用本地数据缓存来存储用户在小程序上产生的操作,在用户关闭小程序重新打开时可以恢复之前的状态 ...

  6. 微信小程序 本地存储及调用

    一.本地存储//建议:在选择图片或文件后立即进行本地存储,如图片,我使用的是异步存储 wx.setStorage({                   key: 'Imgs',//自己去的key名, ...

  7. 微信小程序 本地存储有关方法

    1.wx.setStorage(Object object) 将数据存储在本地缓存中指定的 key 中.会覆盖掉原来该 key 对应的内容.除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可 ...

  8. 微信小程序_基础组件学习02

    微信小程序_基础组件学习02 swiper组件 swiper是滑块容器,也就是手机端的轮播图. swiper组件有两部分组成swiper和swiper-item. swiper-item需要放在swi ...

  9. 在微信小程序上,帮助中心界面实现类似手风琴案例

    在微信小程序上,帮助中心界面实现类似手风琴案例 wxml <view class="container"><block wx:for="{{arrdat ...

最新文章

  1. c语言入门自学书籍推荐6,菜鸟自学嵌入式之C语言基础No6 算法分析
  2. activemq 发两条只收到一条_浅谈ActiveMQ与使用
  3. java applet 换行_Java复习题
  4. 【Python CheckiO 题解】Count Consecutive Summers
  5. linux安装版本的python,linux安装python各种版本.md
  6. shell脚本if和switch语句编写案例
  7. 大智慧c语言dll,dzh2 大智慧dll 插件 - 下载 - 搜珍网
  8. JS记坑 ----- children返回的类数组
  9. 大叔手记(2):为每个应用程序池单独设置aspnet.config配置文件
  10. <算法导论>练习4.3
  11. 如何在Debian8.6 jessie上使用小度Wifi
  12. Excel高级应用高频使用函数汇总
  13. 计算机二级C++刷题记录
  14. 机载激光雷达原理与应用科普(四)
  15. 不使用脚手架构建vue项目
  16. 如何注册域名的详细图文过程分享
  17. rancher及灵雀云TKF中解决中文编码问题
  18. 如何彻底的删除hao123_hao123太流氓!怎么从电脑彻底清除?
  19. 出书最多--map值排序
  20. cypress离线安装_新思、敦泰、汇顶/赛普拉斯触控ICD万能脱机烧录测试工具TP-TEST...

热门文章

  1. 微信测试账号(验证成为开发者)总是配置失败
  2. 详解 ipv4 数据报头格式
  3. java web开发(过滤器)
  4. 小米2018年财报:雷军实现了承诺,但输掉了10亿赌局...
  5. Windows注册表各个作用
  6. 计算几何(三角形内切圆 + 海伦公式) - InCircle - UVA 11524
  7. html不用css超链接去掉下划线,div css之去掉a超链接下划线样式
  8. ThreeJS教程:山脉地形高度可视化
  9. 新年快到了,如何运用Python实现春联
  10. 查询局域网内所有再用ip