美文网首页
vue3中使用vuex 4.x

vue3中使用vuex 4.x

作者: Hasan_hs | 来源:发表于2021-12-03 18:29 被阅读0次

1、首先通过命令新建脚手架,在src目录下新建store文件夹。并创建index.js入口和modules文件夹(


image.png

2、user.js文件,一个独立的模块

const state = {
    user:{}
}
const mutations = {
    SET_USER:(state,user)=>{
        state.user = user;
    }
}
const actions = {

}

export default{
    state,
    mutations,
    actions
}

3、getters配置

const getters = {
    user: state => state.user
}
export default getters

4、在index.js里面导入vuex相关api

// 这里跟vue2有点区别,vue2中是直接导入vue,然后通过vue.use(xxx)
import { createStore } from 'vuex'
import getters from './getters'

//我把模块拆分了,不想每次都导入,通过这个自动导入modules目录下的模块
const modulesFiles = require.context('./modules', true, /\.js$/);
const modules = modulesFiles.keys().reduce((modules, modulePath) => {
  const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1')
  const value = modulesFiles(modulePath)
  modules[moduleName] = value.default
  return modules
}, {})

// 调用createStore
export default createStore({
  getters,
  modules
})

5、在main.js中导入

import { createApp } from 'vue'
import App from './App.vue'
import store from './store'
const app = createApp(App);
app.use(store);
app.mount('#app')

6、最后是在compositionAPI中使用
第一种

import {createNamespacedHelpers, useStore} from 'vuex'
const {mapState, mapActions} = createNamespacedHelpers('user');// 通过这个函数来辅助我们找到user模块
    export default {
        name: 'Home',
        components: {},
        computed: {
            ...mapState({
                token: state => state.token, //指定模块后,这里默认就是获取user下面的state了
            })
        },
    }

第二种方式

 // 导入相关api
    import {computed} from 'vue';
    import {useStore} from 'vuex';

    export default {
        name: 'Home',
        setup() {
            const store = useStore();
            let name = computed(() => store.state.user.name);
            return {
                name,
                setToken: () => store.commit('user/SET_TOKEN', new Date().getTime() / 1000),
            }
        },

    }

相关文章

  • vue安装veux

    现在使用npm i 会默认安装vuex4,vuex4只适用于vue3,如果使用的vue环境是vue3,安装vuex...

  • vue3中使用vuex 4.x

    1、首先通过命令新建脚手架,在src目录下新建store文件夹。并创建index.js入口和modules文件夹(...

  • vue2 vuex的使用

    vuex在vue2中的使用与在vue3中不同,首先,需要安装vuex3而不是vuex4,然后,需要在全局中进行定义...

  • Vue3中使用Pinia

    Vue2 中使用Vuex进行状态管理,在Vue3中,引入了Pinia,如果使用Vue3的脚手架搭建项目,其中包含了...

  • pinia与vuex对比

    Vue3 中使用 Vuex的话需要使用Vuex4,并且存在很大缺陷,所以在 Componsition API诞生之...

  • Vuex最详细教学

    一、Vuex单界面到多界面状态管理切换: 1.安装配置vuex,版本依赖 vue2的项目使用vuex3,vue3的...

  • Vue3-前端构建工具(Vue-Cli和Vite) & 计算属性

    一、Vue-Cli vue3使用环境:Vue CLI 4.x以上,Node.js版本 8.9以上。 main.js...

  • vue3 使用vuex

    1.前言 vuex作为 vue中最流行的状态管理工具,在vue3版本使用的时候也是有些注意事项的 总结如下 2. ...

  • vue3 使用vuex

    vuex_store.js main.js 要使用的js

  • 从零开始使用 vite + vue3 + pinia + nai

    构建工具使用vue3推荐的vite;状态管理使用pinia,该库的作者也是vuex的核心成员;UI组件库使用尤大推...

网友评论

      本文标题:vue3中使用vuex 4.x

      本文链接:https://www.haomeiwen.com/subject/bblmxrtx.html