Vuex:存储对象在组件中不可见
Vuex: store object not visible in components
当我尝试访问随机组件内的 vuex 存储时,返回未定义。但是,我将商店注入到我的 Vue 对象中。有谁知道如何解决这个问题?我可以手动将商店对象导入到每个组件中,但这并不是很干净......
我的文件如下所示:
main.js
import Vue from 'vue'
import VueResource from 'vue-resource'
import VueRouter from 'vue-router'
import VueI18n from 'vue-i18n'
import routes from './config/routes'
import locales from './lang/locales'
import store from './store'
//Routing support
Vue.use(VueRouter);
//Backend support
Vue.use(VueResource);
//Language support
Vue.use(VueI18n);
Vue.config.lang = 'nl';
Object.keys(locales).forEach(function (lang) {
Vue.locale(lang, locales[lang])
});
const router = new VueRouter({
store,
mode: 'history',
base: '/app/',
routes: routes
});
new Vue({
router
}).$mount('#app');
store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import fleet from './modules/fleet'
Vue.use(Vuex)
export default new Vuex.Store({
modules : {
fleet
}
})
app.vue
<template>
<div id="page-content-wrapper">
<nav-bar></nav-bar>
<div class="container-fluid">
<div class="row">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
import NavBar from './assets/navBar.vue'
export default {
created() {
console.log(this.$store)
},
components: {
NavBar
}
}
</script>
this.$store
returns 未定义
const router = new VueRouter({
store,
mode: 'history',
base: '/app/',
routes: routes });
new Vue({
router }).$mount('#app');
商店设计为 new Vue
:
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
您已将其放入 VueRouter 实例中。
正确的代码组合:
const router = new VueRouter({
routes,
mode: 'history',
base: ...
});
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
当我尝试访问随机组件内的 vuex 存储时,返回未定义。但是,我将商店注入到我的 Vue 对象中。有谁知道如何解决这个问题?我可以手动将商店对象导入到每个组件中,但这并不是很干净...... 我的文件如下所示:
main.js
import Vue from 'vue'
import VueResource from 'vue-resource'
import VueRouter from 'vue-router'
import VueI18n from 'vue-i18n'
import routes from './config/routes'
import locales from './lang/locales'
import store from './store'
//Routing support
Vue.use(VueRouter);
//Backend support
Vue.use(VueResource);
//Language support
Vue.use(VueI18n);
Vue.config.lang = 'nl';
Object.keys(locales).forEach(function (lang) {
Vue.locale(lang, locales[lang])
});
const router = new VueRouter({
store,
mode: 'history',
base: '/app/',
routes: routes
});
new Vue({
router
}).$mount('#app');
store/index.js
import Vue from 'vue'
import Vuex from 'vuex'
import fleet from './modules/fleet'
Vue.use(Vuex)
export default new Vuex.Store({
modules : {
fleet
}
})
app.vue
<template>
<div id="page-content-wrapper">
<nav-bar></nav-bar>
<div class="container-fluid">
<div class="row">
<router-view></router-view>
</div>
</div>
</div>
</template>
<script>
import NavBar from './assets/navBar.vue'
export default {
created() {
console.log(this.$store)
},
components: {
NavBar
}
}
</script>
this.$store
returns 未定义
const router = new VueRouter({ store, mode: 'history', base: '/app/', routes: routes });
new Vue({ router }).$mount('#app');
商店设计为 new Vue
:
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})
您已将其放入 VueRouter 实例中。
正确的代码组合:
const router = new VueRouter({
routes,
mode: 'history',
base: ...
});
new Vue({
el: '#app',
router,
store,
render: h => h(App)
})