vuex新手入门简章

vuex是什么?
 
vuex是一个专门为vue应用程序 开发的一个状态管理模式,采用集中式储存管理所有组件的公共状态。
 
上图虚线包裹的就是 vuex的核心 , 其中 state 中保存的就是公共状态, 要改变 state 中的状态(属性), 唯一的办法就是通过 mutations 修改
 
如何引入vuex?
 

下载vuex

npm install vuex --save

在 store/index.js中 安装vuex  并创建实例

 
import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);  // 安装vuex

const store = new Vuex.Store({  // 创建vuex实例
    .....
})

export default store  // 导出实例


在main.js中挂载vuex实例

import store from "./store";  // 导入vuex的实例
......


new Vue({
    ......,
    store, // 挂载实例
})

 

在别的组件中使用

 
console.log(this.$store.state)

Vuex中的五大核心:

 
  •  state : 相当于所有组件的data , 里面存放的是要管理的全局状态
state: {
    isActive: false,
}
  • getters: 可以把getters看做所有组件的computed属性 
 
getters: {
    addNum() {
        return this.num1 + this.num2
    }
}

----------在组件中 可以在computed 中 使用 ...mapGetters() 来直接使用 getters 中定义的方法/属性

 
import {mapGetters} from "vuex";

.....


computed: {
    // 第一种写法 
    ...mapGetters(['addNum'])

    // 第二种写法
    ...mapGetters({
        bieming: "addNum",
    })
}
  • mutations :可以把Mutations看做是所有组件的 methods 属性,里面存在着许多方法 ,这些方法都有两个参数  1. state  2. payload(自定义参数) 
 
mutations: {
    insert(state, payload){
        state.isActive = paload;
    }
}
  • actions :actions 和 mutations类似,区别在于 :
  1. action 提交的是mutation , 而不是直接变更 state 状态
  2. action 中可以包含异步操作 , mutation 中不可以
  3. action 中的回调函数第一个参数是context , 是一个与 store 实例具有相同属性和方法的对象
 
actions: {
    insertAsync(context, payload){
        setTimeout((payload) => {
            context.commit("insert",payload); // commit提交
        }, 3000)
    }
}
  • modules : store模块化。当应用变得复杂时,可以将store分划成各个模块,每个模块都对应有自己的 state , mutation , action ,getter , 也可以嵌套子模块
 
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值