未被捕获的TypeError:Vue不是构造函数-Vue 3的Vuex

问题描述

我正在尝试将Vuex与Vue 3一起使用。这是main.js中的代码:

import { createApp } from 'vue';
import App from './App.vue';
import Vuex from 'vuex';

const app = createApp(App);
app.use(Vuex);

const store = new Vuex.Store({
    state: {
        counter: 0
    }
});

app.store(store);
app.mount('#app');

尝试此操作时,出现以下错误:

Uncaught TypeError: Vue is not a constructor

我尝试使用官方Vuex文档中推荐的语法,但这也不起作用。有人知道如何解决这个问题吗?

解决方法

发生此错误是因为您正在呼叫new Vuex.Store,就像对 Vuex 3 所做的那样。

如果您使用的是 Vue 3 ,则必须通过发出以下命令来安装 Vuex 4

# npm
npm install --save vuex@next

# yarn
yarn add vuex@next

然后建立您的商店并将其“注入”到Vue实例,如下所示:

import { createStore } from 'vuex';
import { createApp } from 'vue';

const store = createStore({
  state () {
    return {
      count: 1
    }
  }
})

const app = createApp({ /* your root component */ });

app.use(store);

有关更多详细信息,请参考Vuex文档:

Vuex 4 for Vue 3

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...