Vue.js 如何在Nuxt中的组件和页面的脚本部分访问vuex
我在NUXTJS2.13上。我正试图根据我的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=()=>({ 目录:“
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.dircreated()中的
组件的一部分,每件事都很好我对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