收藏
回答

Kbone的全局数据存取大家是怎么处理的?

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

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

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

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

在文档中发现个

globalVars:[

            ['TEST_VAR_STRING', '\'miniprogram\''],

            ['TEST_VAR_NUMBER', '123'],

            ['TEST_VAR_BOOL', 'true'],

]

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

纯新手 望不吝赐教

回答关注问题邀请回答
收藏

3 个回答

  • 陈式坚
    陈式坚
    2020-02-27

    看你是不是把它当多页用

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

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


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

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

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


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



    2020-02-27
    有用 3
    回复 3
    • 道道
      道道
      2020-02-27
      好的  谢谢 了解了
      2020-02-27
      1
      回复
    • 道道
      道道
      2020-02-27
      试了下  localstroge可以用!!  因为之前采用的sessionstroge不可用  所以就没往这里试。虽然没法做到vuex的功能,但大部分功能也应该都能解决了
      2020-02-27
      1
      回复
    • 陈式坚
      陈式坚
      2020-02-27回复道道
      ok 能满足业务就很好
      2020-02-27
      3
      回复
  • 子不语
    子不语
    2020-02-27

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

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

    2020-02-27
    有用 1
    回复 4
    • 道道
      道道
      2020-02-27
      方便说下是啥思路吗  每次location跳转不会清空内存数据吗
      2020-02-27
      1
      回复
    • 子不语
      子不语
      2020-02-27回复道道
      不会。就比如一个globalData.js,里面是对象,所有的变量都往里面扔。哪里用到就在哪里引入

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

      2020-02-27
      2
      回复
    • 道道
      道道
      2020-02-27
      谢谢老哥  有解决方案了
      2020-02-27
      1
      回复
    • 子不语
      子不语
      2020-02-27回复道道
      好的。localstroage也行

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

      2020-02-27
      1
      回复
  • 2020-02-28

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

    2020-02-28
    有用
    回复 1
    • 道道
      道道
      2020-02-28
      如果不修改路由,用原来的router.push方式的话,在小程序端就只有一个页面,最直观的就是页面切换没有从右到左的效果。全部只是视图变化。在这种情况下,vuex是可用的。因为实际路由并没有改变,担心影响之后的分享功能,所以还是采用了偏向小程序的多页开发
      2020-02-28
      回复
登录 后发表内容
问题标签