vuex5大核心和4大金刚(辅助函数)用法

vuex是状态管理工具,任何组件都可以使用vuex里的公共数据。

vuex5大核心及其用法:

state:vuex里用于存放数据和变量

mutations:唯一可以改变state数据的

actions:异步操作

getters:相当于计算属性

在页面中调用vuex中state的数据可以这样写:

<div>{{$store.state.值}}</div>

想要更改vuex里的数据必须使用this.$store.commit()传到vuex,然后在vuex的mutations中修改

export default {
    data() {
        return {};
    },
    created() {},
    methods: {
      a(){
        this.$store.commit('事件名',要传递的数据 )
      }
    },
    components:{}
};

actions是异步操作:

比如在异步中请求json数据可以这样写:

1、定义的函数第一个参数是‘context’,然后使用context.$commit(‘事件名’,res数据)传递到mutations中。记得在mutations定义事件

    mutations: {
    setlist(state,val){
   


    },
    actions: {
    getlist(context){
      axios.get('/data.json').then(res=>{
        console.log(res)
      context.commit('setlist',res.data)

      })

    }
  },

2、最后记得在主页面触发异步操作

  created() {
    this.$store.dispatch("getlist");
  },

module 模块化用法:

每一个模块都有完整的5大属性,可以在里面定义属性

  modules: {
    a:{
      state:{
        num:1000
      },
      mutations: {
      },
      actions: {
      },
    }
  }

使用时直接在页面中写,如下:

    {{$store.state.a.num}}

getters计算属性,和vue计算属性性质一样

4大辅助函数:

mapState     在计算属性中展开

mapGetters     在计算属性中展开

mapMutations    在方法中展开

mapActions      在方法中展开

谁要使用就引入对应的辅助函数: 

import {mapState,mapGetters......} from 'vuex'

mapState例子:

 computed: {
    ...mapState({
      aaa: "num",
    }),

最后直接插值就能展示出相应的数据了

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值