vuex总结(话术)

  1. 什么是vuex ?

Vuex 是一个专为Vuex.js应用程序开发的状态管理模式,他由五部分组成:
分别是:state,actions,mutations,modulse
在这里插入图片描述

  1. 五部分组成
    • state :数据
    • actions:可以包含异步操作
    • mutations:唯一可以改变state场所
    • getters:计算属性getter的反回值会根据它的依赖值被缓存起来
    • modules:每个模块拥有只记得state,mutation,active,getter,甚至是嵌套子模块—从上至下进行同样的方式分割
  2. 如何使用
    import vue from 'vue'
    import Vuex from 'vuex'
    Vue.use(vuex);
    
    const state=()=>{token:''}
    const actions={
    	set_token({commit},val){
    		commit("token",val)
    	}
    }
    const mutations={
    	to_ken(state,val){
    		state.token=val;
    	}
    }
    const getters={}
    let store=new Vuex.store({
    	state,
    	actions,
    	mutations,
    	getters,
    })
    module.export=store
    
    	<template>
    	 	<div>
    			{{$store.state.token}}
    	 	</div>
    	</template>
    	<script>
    		created(){
    			//掉用actions中的方法
    			this.$store.dispath('set_token',1234);
    			//调用mutations中的方法
    			this.$store.commit('to_ken',1234)
    		}
    	</script>
    
  3. 高级用法—数据持久化
    他是结合Storage来实现状态持久化
    • 安装
      npm install vuex-persistedstate -S

      -S是–save的简写,意为:把插件安装到dependencies(生产环境依赖)
      -D 是–save-dev的简写,意为:把插件安装到devdependencies(开发环境依赖)

    • 在store中使用

      	import createPersistedState from 'vuex-persistedstate'
      		const state = {
      		user:{},
      	}
      	export default new Vuex.Store({
      	state,
      	getters,
      	actions,
      	mutations,
      
       plugins: [createPersistedState()]
      	//会自动保存创建的状态,刷新还在。默认保存在localStorage中,	key值默认为vuex
      	plugins:[createPersistedState({
      		Storage:window.sessionStorage,
      		key:'data'
      	})]
      	//保存在sessionStorage中,key值为data
      });
      
  4. 高级用法—辅助函数(语法糖)
    1. 语法糖,辅助函数:mapstate,mapActions,mapMutations,mapGetters
    2. 当一个组件需要多个状态时这些状态,这些状态都声明成计算属性过于冗长,于是就有了辅助函数
    	import {mapState,mapGetters,mapActions,mapMutations} from 'vuex'
    	
    	computed:{
    	 	...mapState({
        	a:"a",   //  "a" 指的是state中的a
        	b:"b"
    		}),
    		 ...mapGetters({
        	Val:'newVal' // 可以重新命名
     		})
    	}		
    	
    	methods:{
    		...mapActions({
        	getSync:'getSyncNum'
    	})
    
    	...mapMutations({
        	increament:"increament"
    		})
    	}
    	// 使用时
    
    	template
    
    	{{a}}  {{b}}
    
    	{{getSync(1)}}
    
    	<button @click='increament(1)'></button>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值