关于对vuex使用过程中的一些心得体会

关于对vuex使用过程中的一些心得体会

  1. vuex是什么
    是专为vue.js应用程序开发的状态管理模式
    集中储存应用所有组件的状态
    vuex的应用场景是在多个视图应用同一个状态且组件内嵌套关系比较复杂时

  2. vuex的核心概念

    • Store储存状态(一个应用只能有一个store)
    • State(集中管理应用状态的对象)
    • Getters(获取组件内部的state并对其进行逻辑处理)
    • Mutations(唯一修改state的回调函数)
    • Actions(异步操作,提交Mutations,而不是直接改变State的状态)
    • Modules(当应用的应用场景复杂时我们需要划分模块,分别管理各个组件的States)
  3. 详细介绍
    如何使用vuex

安装vuex模块
npm install vuex --save

作为插件使用
vue.use(vuex)

注入根实例当中去
{
  store
}

完整实例,新建store.js
import vue from 'vue'
import Vuex from 'vuex'

export const LOGIN_SUC = 'LOGIN_SUC';
export const SHOW_LOGIN = 'SHOW_LOGIN';
let store = new Vuex.store({
    state: {
            mobile: '',
            password: '',
            isShowLogin: false,
        },
        actions: {
            addMyInfo({ commit } , loginInfo){
            commit(LOGIN_SUC , loginInfo);
            },
            showLogin({ commit } , flag){
              commit(SHOW_LOGIN , flag);
            },
        },
        mutations: {
            [LOGIN_SUC] (state , loginInfo) {
              state.mobile = loginInfo.mobile;
            },

            [SHOW_LOGIN] (state , flag) {
              state.isShowLogin = flag;
            },
        },
        getters: {
            getMsg(state){
                return state.msg;
            },
           getMobile(state){
              return state.mobile;
           },
          getIsShowLogin(state){
             return state.isShowLogin
          }
        }  
})

上面是一个简单实例

  1. State

    在实际项目过程中我们可以通过this.$store.state.XXX来获取state的状态
    当然我们可以通过辅助函数mapState来简化操作

***不使用mapState时***
computed:{
    isShowLogin:function(){
      return this.$store.state.login.isShowLogin;
    },
    mobile: function () {
      return this.$store.state.login.mobile;
    }
   }
***使用mapState时***
computed:{
    ...mapState({
      isShowLogin: state => state.isShowLogin,
      mobile: state => state.mobile,
    }),
  }
或者是字符串的值必须和state里面的值相同
computed:{
    ...mapState({
      isShowLogin: 'isShowLogin',
      mobile: 'mobile',
    }),
  }
  1. Motations
    Motations是用来提交state并改变state的值this.$store.commit('Motations定义的方法',{最好提交对象上去});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值