gotogether
gotogether
  • 发布:2020-04-14 19:56
  • 更新:2021-04-03 02:45
  • 阅读:2143

单独的js文件如何与vue页面共享vuex

分类:uni-app

官方文档说

除了通信事件,vue 和 nvue 页面之间还可以共享变量和存储。 uni-app提供的共享变量和数据的方案如下:

  1. vuex:

自HBuilderX 2.2.5起,nvue支持vuex。这是vue官方的状态管理工具。

注意:

不支持直接引入store使用,可以使用mapState、mapGetters、mapMutations等辅助方法或者使用this.$store

如果是单独的一个js文件,用import store的方式引入vuex,怎么让这个js里的state和其它vue页面mapstate的state共享

2020-04-14 19:56 负责人:无 分享
已邀请:
渡

- 性感前端在线炒粉一份8块

import Vue from 'vue'
let vm = new Vue()

  • vm.$store.state.xxx

    2020-09-17 08:51

gotogether

gotogether (作者)

目前测试的结果是
如果是一个单独的api.js文件,import store from '@/store/index.js'
别的vue页面修改了state,这个api.js文件里取得的state是没有同步更新的

7***@qq.com

7***@qq.com - 技术猥琐男

我也是遇到了同样的问题,请问有人关注这个问题吗?发现uniapp没什么人关注啊。。。

  • gotogether (作者)

    没找到好的解决办法,我现在是vuex跟storage混用,需要共享的数据在storage里也放一份,就是太麻烦了

    2020-05-07 11:25

呆头

呆头

我也遇到同样的问题、
如果是一个单独的api.js文件,import store from '@/store/index.js'
别的vue页面修改了state,这个api.js文件里取得的state是没有同步更新的!!
这个问题我还以为是自己代码的原因,浪费了我一天时间了。哎。
这个一个坑呀、目前尝试使用 globalData 解决

1***@qq.com

1***@qq.com

我的做法是在onLaunch生命周期中把store挂载到globalData中,单独的js调用就使用const store = getApp().globalData.store;不知道这种方法会不会有问题。。。

该问题目前已经被锁定, 无法添加新回复