2

尝试 1

main.js

import { createApp } from 'vue'
import { store } from './store/store'
import App from './App.vue'

Vue.config.productionTip = false

const app = createApp(App)

app.use(store)

app.mount('#app')

store.js

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

Vue.use(Vuex)

export const store = new Vuex.Store({
  state: {
    patients: []
  }
});

尝试 1 错误

Uncaught TypeError: Cannot read property 'use' of undefined
    at eval (store.js?07a4:4)
    at Module../src/store/store.js (app.js:1342)

尝试 2

main.js

import { createApp } from 'vue'
import { store } from './store/store'
import App from './App.vue'

Vue.config.productionTip = false

const app = createApp(App)

app.use(store)

app.mount('#app')

store.js

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

export const store = new Vuex.Store({
  state: {
    patients: []
  }
});

尝试 2 错误

vuex.esm.js?94ea:135 Uncaught Error: [vuex] must call Vue.use(Vuex) before creating a store instance.
    at assert (vuex.esm.js?94ea:135)
    at new Store (vuex.esm.js?94ea:380)
    at eval (store.js?07a4:6)

我使用 Vue CLI 创建了一个 Vue 应用程序。我正在尝试实现 Vuex。我遵循了许多教程(通常设置了 2 种不同的方式)。使用调试器时,我能够在它读取“Vue.use(Vuex)”之前停止。此时记录 Vue 返回未定义。我相信我的进口是正确的,但不知道我是否遗漏了一些重要的东西。任何帮助深表感谢。

编辑:尝试 1 和 2 之间的唯一区别是我在尝试 2 上删除了“Vue.use(Vuex)”。

4

2 回答 2

7

您将 vuex 3 语法与 Vue 3 一起使用,它与具有以下语法的 vuex 4 兼容:

store.js


import { createStore } from 'vuex'

// Create a new store instance.
const store = createStore({
  state: {
    patients: []
  }
})
export default store;

然后在 main.js 中使用导出的存储:

import { createApp } from 'vue'
import store from './store/store'
import App from './App.vue'

Vue.config.productionTip = false

const app = createApp(App)

app.use(store)

app.mount('#app')

Vuex 4 文档

Vue.js 3 文档

于 2020-12-16T16:51:53.293 回答
5

我可以通过卸载我的 VueX (3.6) 来完成这项工作

npm uninstall vuex

并安装 VueX (4.0 alpha)

npm i vuex@4.0.0-alpha.1

这个错误的原因是因为我使用了来自不同版本的 2 种不同的语法方法。

感谢大家的帮助!

main.js

import { createApp } from 'vue'
import { store } from './store/store'
import App from './App.vue'

const app = createApp(App)

app.use(store)

app.mount('#app')

store.js

import { createStore } from 'vuex'

// Create a new store instance.
const store = createStore({
  state () {
    return {
      patients: []
    }
  }
})

export default store;
于 2020-12-16T17:36:00.660 回答