1.组件传值三种方式:
序号 | 组件关系 | 数据通信 |
---|---|---|
1 | 父子关系 | 子传父:$emit ; 父传子:props |
2 | 非父子关系 | eventBus: $on + $emit |
3 | 非父子关系 | vuex |
2.Vuex作用是
- 多个组件共享状态(数据)
Vuex特点:
响应式:只要vuex数据一变化,其他所有地方都更新
Vuex使用场景:
- vuex使用场景 : (1)多个组件都需要使用的数据:共享 (2)组件传值比较麻烦(不是父子关系)
3.vuex的五个属性:
1.state
State提供唯一的公共数据源,所有共享的数据都要统一放到Store中的State中存储。
2.getters
state的计算属性
3.mutations
state数据的修改只能通过mutations,并且mutations必须是同步的
Mutations是更新state数据的唯一方式!!!
mutations:{
// 每一项都是一个函数,可以声明两个形参
mutation名1:function(state , 载荷 ) {
},
使用格式:this.$store.commit('mutation名', 载荷 )
4.actions
actions与mutations相同点 :都是修改state数据
actions与mutations不同点:
-
mutations:同步更新
-
actions: 异步更新(例如你的数据来源于ajax)
调用格式:
在组件中通过this.$store.dispatch('actions的名字', 参数)
来调用action
5.modules
模块化处理vuex数据