VueX分了模块如何使用

VueX分了模块如何使用

1、创建一个js文件,命名为ad的一个VueX的子模块

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const ad= ({
  namespaced: true, //定义命名空间,防止冲突
  state: {
    adStyleShow : true
  },
  mutations: {
    setAdStyleShow (state,flag) {
      state.adStyleShow = flag
    },
  }
})

export default ad

2、然后再index.js中引入该子模块

import Vue from 'vue'
import Vuex from 'vuex'
import ad from './module/ad'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    ad
  }
})

3、然后在Vue组件使用,首先如何获取state里面的值,有两种方法

//法一:直接用$store返回
computed:{
      show(){
        return this.$store.state.ad.adStyleShow  //show为该vue组建中的变量名,ad为VueX模块的名字,adStyleShow为state里的值
      }
    }

//法二:用mapState映射
import { mapState} from "vuex"

computed:{
      ...mapState({
        show : state=> state.ad.adStyleShow //show为该vue组建中的变量名,ad为VueX模块的名字,adStyleShow为state里的值
      })
    }

这两种方法都可以得到show的值为ad模块中state的adStyleShow值在这里插入图片描述

4、如何使用mutations

<template>
<button @click="adStyleChange"></button>
</template>

<script>
import { mapState, mapMutations } from "vuex"
 methods: {
      ...mapMutations("ad",["setAdStyleShow"]), //映射ad模块中的Mutations的setAdStyleShow方法
      
      adStyleChange(){
          this.setAdStyleShow(false)
      }
}
</script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值