vue vuex 全局状态管理


vuex 状态集中管理

└── store.js
    ├── index.js          # 组装store和导出store
    ├── actions.js        # 路径
    ├── mutations.js      # 触发事件
    └── modules
        ├── cart.js       # cart module
        └── products.js   # products module

store.js 主文件

	1.安装 cnpm install vuex --save
	2.main.js中引入 
		import Vuex from 'vuex'
		import store from '@/store/store'// /store/store.js  状态管理的主文件
		new Vue({
			  el: '#app',
			  Store,  //引用
			  router:Router,  
			  render: h => h(App)
		})
	3.store.js中集中管理vuex
		import Vue from 'vue'	//引入vue
		import Vuex from 'vuex'		//引入vuex
		import State from './state'  //引入 数据管理文件
		import Mutation from './mutation' //引入 事件触发修改state.js中的数据 文件
		import Getter from './getter'	//引入 返回state.js中的数据 文件
		Vue.use(Vuex); //将vuex 和vue关联
	4. 实例化 store
		 let store=new Vuex.Store({
		    state:State,
		    getters:Getter,
		    mutations:Mutation
		});
		export default store; //main.js 引用

state.js 数据存储

let state={
	data:[],
	data1:[]
}
export default state;

mutation.js 调用state数据 触发事件

let mutation={
	fn(state,params){
	//修改state数据
		state.data = new data;
	}
}
export default mutation;

action.js 调用state数据 异步触发事件

Action 提交的是 mutation,不直接变更状态;
Action可以包含异步操作 store.dispatch({type:'changeFS',res:''})

store.dispatch('fun');//分发 Action
let action={
    fun(context ){ //一个与 store 实例具有相同方法和属性的 context 对象
        context.commit('fun');//提交一个 mutation
        context.state ('stateName');//获取state
        context.getters('gettersName');//获取 getters
    },
    fun1({commit,state,getters}){
    	...state.cart.added;
		commit(types.CHECKOUT_REQUEST); //参数解构
	}
}
export default action;

getter.js 返回state数据

let getter={
	getfn(state){		
		return state.data1;//返回state数据
	}
}
export default getter;

组件内使用

直接引用

methods:{
//触发Mutations 事件
	this.$store.commit(fn,{params:paramsdata}) 
//获取store里面数据 返回传值
	this.$store.state.data 
	this.$store.getters.data 
}

mapGetters mapMutation 助手

//触发Mutations 事件
  methods: {
    ...mapMutations({
      fninfo: "fn" //fninfo():定义mutation事件fn
    })
  }
//mapGetters 返回传值对象
  computed: {
    ...mapGetters({
      getfninfo: "getfn" //getfninfo:定义返回state对象
    })
  }
    computed: {
    ...mapGetters([
       "getfn" //直接返回state对象
    [)
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值