nuxtjs 项目中如何在单独的 js 文件里引入 vuex?

2019-07-08 15:03:14 +08:00
 doco

做了个 nuxtjs 的项目, 但是不知道要如何才能在 js 文件中引入 vuex, 上网找了下有一些是建议以导出 Vuex 实例的方式创建 store, 但是 nuxt 文档中又不建议这样做. 有人知道要怎样解决吗?

4514 次点击
所在节点    程序员
9 条回复
saberlove
2019-07-08 15:35:40 +08:00
你的这个 JS 文件写为一个 plugins
然后在 plugins 里面使用

export default ({ app, $axios, store, route, redirect }) => {
socket.doSomeThing(()=>{

})
}
saberlove
2019-07-08 15:35:58 +08:00
怎么发出去了。。
saberlove
2019-07-08 15:37:26 +08:00
这里有 store 对应 vuex
你直接使用 store.dispatch('socket/xxxx')就可以了
noe132
2019-07-08 16:55:35 +08:00
可以 hack 一下,从组件中获取到 store 后赋值到一个地方保存起来。
nuxt 创建的 store 实例并没有 exports 出来,所以没法直接 import
noe132
2019-07-08 16:57:10 +08:00
对也可以写一个 plugin,在 plugin 执行的时候把 store 保存起来。
saberlove
2019-07-08 16:57:14 +08:00
@noe132 实例初始化完毕以后 nuxt 会在 window 全局注入$nuxt 通过$nuxt.$store 可以访问 store
但是这样不好 初始化完毕以前无法访问$nuxt
saberlove
2019-07-08 16:58:04 +08:00
@noe132 plugin 的 context 上下文里面是有 store 实例的
doco
2019-07-08 17:00:52 +08:00
@saberlove #3 确实好用了, 谢谢大佬.
guoyancheng1022
2021-04-07 10:34:10 +08:00
@saberlove 大佬,用你的方法在 js 中 console.log(store.state.user_id)查出来是空值,但我在 vue 组件中 this.$store.state.user_id 确实能取到值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/581013

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX