【问题标题】:Why Vuex store instance is passed to Vue constructor parameters?为什么将 Vuex 存储实例传递给 Vue 构造函数参数?
【发布时间】:2020-11-10 23:05:01
【问题描述】:

store.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    state: {},
    getters: {},
    mutations: {},
    actions: {}
})

main.js

import Vue from 'vue'
import store from './store'

// What is purpose of store parameter in Vue instance?
const app = new Vue({
    store
})

app.$mount('#app')

我也看到了 Vue Router 实例的类似语法。

【问题讨论】:

  • 因为Vue.use(Vuex) 安装了一个插件,并且该插件使用了构造函数参数。否则,您的组件将无法访问商店。

标签: javascript vue.js vue-component vuex vue-router


【解决方案1】:

以下语法:

const app = new Vue({
    store
})

使商店实例可用于this.$store 等子组件,如果您不这样做,则不会为您的组件定义商店,或者您必须将该商店导入每个组件中:

import store from '../store'
//or 
import store from '../../store'

这不是好的做法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-29
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多