如何在 Vuejs 应用程序中正确设置 Vuex?

use*_*566 2 javascript vue.js vuex vuejs3 vite

我正在创建一个 Vuejs 应用程序,并且想使用 Vuex。

但我无法添加 Vuex 商店。

这是我的代码:

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

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    userData: "USER!"
  },
  mutations: {

  },
  actions: {

  },
  getters: {

  }
})

export default store
Run Code Online (Sandbox Code Playgroud)

我收到错误:

未捕获的语法错误:请求的模块“/node_modules/.vite/vue.js?v=52de2cee”不提供名为“default”的导出

main.js

import { createApp } from 'vue'
import App from './App.vue'
import router from '@/router'
const app = createApp(App)
import Vuex from 'vuex'
import { store } from '@/store/users'

app.use(router)
app.use(Vuex)

app.mount('#app')
Run Code Online (Sandbox Code Playgroud)

我做错了什么?多谢。

ton*_*y19 10

您显示的第一块代码适用于 Vue 2,它在 Vue 3 中不起作用。Vue 3 需要 Vuex 4。

要在 Vue 3 应用程序中设置 Vuex 4:

  1. 安装 Vuex 4:

    npm i -S vuex@next
    
    Run Code Online (Sandbox Code Playgroud)
  2. 更新商店以使用Vuex 4 createStoreAPIapp.use() (这将在下一步中创建一个插件):

    // @/store.js
    import { createStore } from 'vuex'
    
    export default createStore({
      state: {
        userData: "USER!"
      },
      mutations: {
    
      },
      actions: {
    
      },
      getters: {
    
      }
    })
    
    Run Code Online (Sandbox Code Playgroud)
  3. 更新主脚本以安装商店app.use()

    import { createApp } from 'vue'
    import store from '@/store'
    
    const app = createApp(App)
    app.use(store)
    
    Run Code Online (Sandbox Code Playgroud)

演示