美文网首页
2020-09-13

2020-09-13

作者: 画画苹果 | 来源:发表于2020-09-13 22:17 被阅读0次

学习vuex的基本框架和调用方法

state(数据存放)

1.state定义

    userId: '',
    name: '',
    token: '',
    id:1,
  }

2.组件定义和触发

import {mapState} from ‘vuex’
computed:{
...mapState(['usrId','name','token'])
},

getter (对store中的数据进行加工处理形成新数据,但是不会修改state的数据,起到包装作用)

1.getter 定义

getters: {
    userIdDouble (state){
      return state.userId * 2
  }

2.触发

import {mapState,mapMutations,mapActions} from ‘vuex’
computed:{
...mapGetters(['userIdDouble‘])
},

Mutations对store中的数据修改,修改就用Mutations

1.Mutations定义

Mutations: {
    add(state){
      state.id++
        },
  }

2.触发

import {mapState,mapMutations,mapActions} from ‘vuex’
methods:{  
//在第一行先挂在mutations,里边加入需要修改的mutations函数名
...mapMutations(['add‘])
},
//然后在函数中可以直接进行调用
this.add()

Actions对store中的数据异步修改,在异步中不能直接修改state,需要用context.commit(‘add’)来修改

1.Actions定义

Actions: {
    addAsync(context){
        setTimeout(()=>{
          context.commit('add')   //触发修改mutations来进行修改
        },1000)
    }
  }

2.触发

//第一种触发
this.$store.dispath()
import {mapState,mapMutations,mapActions} from ‘vuex’
methods:{  
//在第一行先挂在mutations,里边加入需要修改的mutations函数名
...mapMutations(['add'])
...mapActions(['addAsync'])
},
//然后在函数中可以直接进行调用
this.addAsync()

相关文章

网友评论

      本文标题:2020-09-13

      本文链接:https://www.haomeiwen.com/subject/ixioektx.html