Métodos comunes de vuex

 const store = new Vuex.Store({
    
    
      state: {
    
    
         obj:{
    
    }
      },
      getters: {
    
    
         nameInfo(state,getter){
    
    
        	return "姓名:" + state.obj.name
      	 },
      	  //第二个参数getters用于将getters下的其他对象拿来用
      	 fullInfo(state,getters){
    
    
        	return getters.nameInfo + '年龄:' + state.obj.age
    	 } 
      },
      mutations: {
    
    
         saveInfo(state,value){
    
    
            //state里为初始值,value为你要存的值
            state.obj= value
         },
      },
      actions: {
    
    
		//context(上下文):commit,dispatch,state,rootState,getters,rootGetters
      	 async viewInfo(context, id){
    
    
            const {
    
     data } = await axios.get(`/api/residueDegree?id=${
      
      id}`)
      		if (data.code === "0000") {
    
    
        	   context.commit("saveInfo", data.data)
      		}
      		return data
         }
	  }
  })

//获取值
this.$store.state.obj
this.$store.getters.fullInfo

state Almacena
captadores de estado . Después de procesar miembros en estado, se pasan a
mutaciones externas . Operaciones en miembros de estado (agregar, eliminar, modificar, etc.)
acciones en
módulos de operaciones asincrónicas Gestión de estado modular

La diferencia entre acciones y mutaciones.

Las acciones presentadas son mutaciones, en lugar de cambiar directamente el estado.
Las acciones pueden contener cualquier operación asincrónica, usando el método de envío, las
mutaciones solo pueden ser operaciones sincrónicas, usando el compromiso para modificar directamente el valor en el estado

let value ={
    
     name:'nick',age:18 }
this.$store.commit("saveInfo",value)
this.$store.dispatch('viewInfo',123).then(()=>{
    
    })

El problema de actualizar los datos de la página en vuex desaparecerá

const store = new Vuex.Store({
    
    
    state:sessionStorage.getItem('state') ? JSON.parse(sessionStorage.getItem('state')): {
    
    
       name:""
       age:''
    }
})
mounted() {
    
    
    window.addEventListener('beforeunload', this.saveState)
},
methods: {
    
    
    saveState() {
    
    
        sessionStorage.setItem('state', JSON.stringify(this.$store.state))
    }
}

Supongo que te gusta

Origin blog.csdn.net/m0_48076809/article/details/106671955
Recomendado
Clasificación