vuex配置

vuex配置

目录

  1. vuex的五个核心
  2. 配置vuex
  3. vuex持久化

一、vuex五个核心概念

  1. State 定义状态(变量)
  2. Getter 获取状态
  3. Mutation 修改状态
  4. Action commit mutation,触发Mutation函数
  5. Module 当状态很多的时候,分模块管理状态

二、配置vuex

import Vue from 'vue';
import Vuex from 'vuex';
import order from './module/order'
import VuexPersistedstate from 'vuex-persistedstate';
Vue.use(Vuex);

export default new Vuex.Store({
    state: {
        isLogin: false,
        username: 'web03'
    },
    getters: {
        // isLogin: (state)=> {
        //     return state.isLogin;
        // }
        isLogin: state=> state.isLogin,
        username: state=> state.username,
    },
    mutations: {
        updateLogin(state,payload) {
            state.isLogin = payload;
        },
        updateUsername(state,payload) {
            state.username = payload;
        }
    },
    actions: {
        // LoginAction(context,payload) {
        //     context.commit('updateLogin',payload);
        // }
        // 
        LoginAction({commit},payload) {
            commit('updateLogin',payload);
        }
    },
    modules: {
        order
    },
    plugins: [
        // 持久化
        VuexPersistedstate()
    ]
})

(三) 获取state的值

  1. 通过mapGetters

    <script>
    import {mapGetters} from 'vuex';
    export default {
        computed: {
            ...mapGetters(['isLogin'])
        }
    }
    </script>
    
  2. 通过$store.state获取

    <script>
    import {mapGetters} from 'vuex';
    export default {
        computed: {
           isLogin() {
               return this.$store.state.isLogin;
           }
        }
    }
    </script>
    

(四) 修改state的值

<template>
    <div>
        <button @click="login">立即登录</button>
    </div>
</template>

<script>
export default {
    methods: {
        login() {
         // 通过action修改
            // this.$store.dispatch('LoginAction',true);
            // 通过mutation修改
            this.$store.commit('updateLogin',true);
        }
    }
}
</script>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ### store 1. Vue 组件中获得 Vuex 状态 ```js //方式一 全局引入单例类 // 创建一...
    芸豆_6a86阅读 478评论 0赞 0
  • Vuex是什么? Vuex 是一个专为 Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件...
    萧玄辞阅读 3,264评论 0赞 6
  • 安装 npm npm install vuex --save 在一个模块化的打包系统中,您必须显式地通过Vue.u...
    萧玄辞阅读 3,092评论 0赞 7
  • ### store 1. Vue 组件中获得 Vuex 状态 ```js //方式一 全局引入单例类 // 创建一...
    芸豆_6a86阅读 820评论 0赞 3
  • npm i vue-cli -g vue init webpack(or others) my-project-...
    ismyshellyiqi阅读 484评论 0赞 0

友情链接更多精彩内容