Vue.js 如何在Nuxt中的组件和页面的脚本部分访问vuex

Vue.js 如何在Nuxt中的组件和页面的脚本部分访问vuex,vue.js,vuejs2,nuxt.js,vuex,Vue.js,Vuejs2,Nuxt.js,Vuex,我在NUXTJS2.13上。我正试图根据我的store.state.dir动态加载组件。 像这样: 从“Vuex”导入存储; 让siteDirection=store.state.dir 常量mm=()=>import(“~/components/”+siteDirection+//home/mm.vue”) 导出默认值{ 组成部分:{ “mm”:mm } 但是我不能进入我的商店,我该怎么办 我的store/index.js文件: export const state=()=>({ 目录:“

我在NUXTJS2.13上。我正试图根据我的
store.state.dir
动态加载组件。 像这样:


从“Vuex”导入存储;
让siteDirection=store.state.dir
常量mm=()=>import(“~/components/”+siteDirection+//home/mm.vue”)
导出默认值{
组成部分:{
“mm”:mm
}
但是我不能进入我的商店,我该怎么办

我的
store/index.js
文件:

export const state=()=>({
目录:“rtl”
})

如果您正确设置了Vuex,您应该能够访问全局$store变量的状态

您不能访问或“动态”定义或使用Vue范围之外的这些变量

因此,要回答您的问题,请将代码更改为:

<script>
export default { 
  components:{
    'mm': () => import('~/components/'+ this.$store.state.dir + '/home/mm.vue')
}
</script>

然而,无论你想实现什么,这都可能被认为是“非常规的”访问组件的方式,但我不知道您试图实现什么,这将是对实际问题的回答。但现在您将拥有多组非常相似的组件。

当我尝试不同的方法时,唯一对我有效的方法是使用
和计算属性:


导出默认值{
计算:{
mycop(){
return()=>import('@/components/'+this.$store.state.dir+'/mycomp.vue')
}
}
}

在开发一个双向应用程序时,我在顶层为每个组件创建了两个组件。一个在
rtl
目录中,一个在
ltr
目录中。然后根据存储在
vuex
中的我的应用程序
dir
导入和装载它们。这是否奇怪?我做了
这个。$store.state.dir
但它给了我一个
无法读取未定义的属性“$store”
。我的vuex设置按照nuxt的指示,在
store
目录中添加了
index.js
,并导出了
state
getters
突变
操作
。实际上,我的
存储
工作得很好,并且使用了相同的
这个。$store。state.dir
created()中的
组件的一部分,每件事都很好我对nuxt不太熟悉,但我再次检查了问题并编辑了我的回答,您可能希望检查您的store.js以及上述内容,也许这就是问题所在?根据您的其他问题,同一组件在rtl和ltr之间有什么区别?
import Vue from 'vue'
import Vuex from 'vuex'    
Vue.use(Vuex)

const state = {
dir: 'rtl'
}

const store = new Vuex.store({
state,
// getters,mutations,actions,modules if you want
})

export default store