Vuex中常用知识点(总结)


本文摘自PHP中文网,作者青灯夜游,侵删。

如果你之前使用过vue.js,你一定知道在vue中各个组件之间传值的痛苦,在vue中我们可以使用vuex来保存我们需要管理的状态值,下面我们就来看一下vuex中常用的一些知识点,希望对大家有一定的帮助。

一、为什么要使用Vuex

1、多个组件依赖同一个状态,使用组件之间通信方法会非常繁琐,例如多层嵌套组件。

2、需要全局保存的数据,例如用户、权限信息,全局系统设置

二、Vuex的五个核心属性

1、state:存储状态

1

2

3

4

// store.jsconst store = new Vuex.Store({

  state: {

    count: 0

  }});// 组件里获取count值$store.state.count

2、getters:state作为第一个参数,其他getters作第二个参数,返回值会根据他的依赖缓存起来,相当于Vue的计算属性

1

2

3

4

5

6

7

8

9

10

// store.jsconst store = new Vuex.Store({

  state: {

    count: 1,

    sum: 2

  },

  getters: {

    getCountAndSum: (state,getters) => {

      return state.count + state.sum;

    }

  }});// 其他组件获取getter$store.getters.getCountAndSum

3、mutations:修改状态(同步的),state 作为第一个参数,提交载荷作为第二个参数

1

2

3

4

5

6

7

8

9

const store = new Vuex.Store({

  state: {

    count: 1

  },

  mutations: {

    increment (state, obj) {

      state.count += obj.n;

    }

  }});// 其他组件调用mutations的方法$store.commit('increment', {n: 100});

4、actions:异步操作(执行mutations的方法,不是直变更状态)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

const store = new Vuex.Store({

  state: {

    count: 1

  },

  mutations: {

    increment (state, obj) {

      state.count += obj.n;

    }

  },

  actions: {

    increment (context) {

      context.commit('increment');

    }

  }});// 其他组件调用actions的方法$store.dispatch('increment');

5、modules:store的子模块

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

const a = {

  state: {

    count: 0

  },

  getters: {

    getCount2 (state, getters, rootState) {

      return state.count + 2;

    }

  },

  mutations: {

    increment (state, getters, rootState) {

      state.count++; 

    }

  },

  actions: {

    increment (context) {

      // context.state.count;

      // context.rootState.count;

      context.commit('increment');

    }

  }};const b = {};const store = new Vuex.Store({

  modules: {

     a,

     b  }});// 其他组件调用 (获取state的变量需要加上引入的module的别名)$store.state.a$store.state.b

三、Vuex辅助函数

阅读剩余部分

相关阅读 >>

bootstrap和vue的区别

4个很 nice 的vue router过渡动效,快来收藏!

vue.nexttick是什么

如何解决vue中layui报错问题

vue 和 react 的优点有哪些

vue如何给组件加css样式

怎么运行vue.js

vue.怎么绑定属性

ant design支持vue

eclipse支持vue

更多相关阅读请进入《vue》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...