vuex是什么

## 首先要知道vuex是什么
是实现组件全局状态数据管理的一种机制,可以方便的实现组件之间数据的共享

## 先说state在组件中如何用

1.直接在 computed:{
		list(){//全局数据名称
			this.$store.state.list
		}
	}
2.从vuex 中按需导入mapState 函数
import {mapState} from "vuex"  
computed计算属性
computed:{
	...mapState(['name'])
}
## mutation首先这个方法用来改变state里面的方法的只能通过mutation变更store数据,不可以直接操作store中的数据,里面有个方法commit用来触发mutation里面方法用的

在组件中使用
1.methods:{//触发mutation
	abc(){
		//list是mutation里面的方法
		this.$store.commit('list',)
	}
}
2.现在组件中引用 import {mapMutations} from 'vuex'
methods:{
	...mapMutations(['name','ooo'])
}

## action和mutation功能大致相同,不同之处在与action提交的是mutation,而不是直接变更状态,可以包含异步操作,用于处理异步任务,dispatch用来触发action里面的方法,注意 action方法 返回的是一个Promise对象

在组件中使用
1.methods:{
	abc(){
		//name是actions里面的方法
		this.$store.dispatch('name')
	}
}
2.现在组件中引用 import {mapActions} from 'vuex'
methods:{
	...mapAction(['addAsync'])
}
## getter从基本数据state派生的数据,相当于state的计算属性,具有返回值的方法会返回一个新数据,不会影响到state里面的老数据store中的数据发生变化.getter的数据也会跟着变化

用法
1.methods:{
	this.$store.getters.list
}  
2.
import {mapGetters} form 'vuex'
computed:{
	...mapGetters(['list'])
}
## modules模块化vuex
modules 可以让每一个模块拥有自己的state,mutation,action,getters,使得结构非常清晰,方便管理 
由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。
为了解决以上问题,Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值