Kbone的全局数据存取大家是怎么处理的?
发布于 6 年前 作者 sungang 13460 次浏览 来自 问答

我最近打算将公司的一个H5商城转一下,碰到些问题。

因为现在路由跳转用的是location,所以vuex的state每次跳转后都会被清空。等于是无法使用vuex

目前对于token和一些用户信息采用的是cookie存储

但是下单时候的购物车数据可能会超cookie上限,所以想知道有没类似globalData的东西

在文档中发现个

globalVars:[

            [‘TEST_VAR_STRING’, ‘\‘miniprogram\’’],

            [‘TEST_VAR_NUMBER’, ‘123’],

            [‘TEST_VAR_BOOL’, ‘true’],

]

我试了下并不能在页面中直接取到值,想知道这东西怎么样,或者有没小程序端全局数据的解决方案

纯新手 望不吝赐教

3 回复

看你是不是把它当多页用

如果是当多页用,那很遗憾告诉你,没有办法… 因为一方面多页的机制module也会是多例,就是你就算引用同个文件,里面的数据都是新的不是共享的(因为文件被打包在一起)。一方面 Web端的一些通信方法都没办法用。

当然,如果你的需求只是在别的页面能获取到全局数据,那建议用 cookie 或者 localstorage 都能实现

如果你不是把 kbone 的应用当做多页。那你用 kbone 干什么??换个写法?

在不符合规范和使用方式下,你可以使用一些方法

  1. 把数据挂载到 app.js,然后通过 getApp() 实现全局状态功能
  2. 通过 webpack 单独打包出一个文件,里面来存储数据(把这个文件变成单例)
  3. 使用 getCurrentPages 等微信的 api 方法操作

当然,原则上非常不推荐这么做。因为这样的做就没必要用 kbone 了… 既然要用,就规范一点

我是自己写了一个js模块,专门来存全局变量的

--↓↓👍如果觉得有帮助的话请点个【赞】吧(我的小尾巴又肥来啦!)

既然是单页程序其实真没那必要去做跳转,特别是手机上,用堆栈方式加载路由是比较合理的,现在好比你非要拿着筷子喝汤,为难自己,习惯下单页面程序。

回到顶部