09. vuex

2022-11-16 17:36:01发布
75

1、定义vuex文件(和vue2没区别)

路径:src/store/user/index.js

export default {
    namespaced: true,
    state: {
        name: 'tom',
    },
    mutations: {
        setName(state, name) {
            state.name = name;
        }
    },
    actions: {
        getName({ commit }) {
            let newName = 'linchunfeng';
            commit('setName', newName);
        }
    }
}


2、定义index.js

路径:src/store/index.js

import { createStore } from 'vuex'
import user from './user'

export default createStore({
    modules: {
        user
    }
})

vue3的Vuex对象初始化和vue2的不一样


3、在main.js注册

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


const app = createApp(App)
app.use(Store) // 注册vuex
app.mount('#app')


4、使用

<script setup>
import { useStore } from "vuex";

const store = useStore();
console.log(store.state.user.name); // tom
store.dispatch("user/getName");
console.log(store.state.user.name); // linchunfeng
</script>


目录图