【Vue】获取模块内的mutations方法

目标:

掌握模块中 mutation 的调用语法

注意:

默认模块中的 mutation 和 actions 会被挂载到全局,需要开启命名空间,才会挂载到子模块。

调用方式:

  1. 直接通过 store 调用 $store.commit('模块名/mutations名 ', 额外参数)
  2. 通过 mapMutations 映射
    1. 默认根级别的映射 mapMutations([ mutations名’ ])
    2. 子模块的映射 mapMutations(‘模块名’, [‘mutations名’]) - 需要开启命名空间

代码示例

modules/user.js

const mutations = {
  setUser (state, newUserInfo) {
    state.userInfo = newUserInfo
  }
}

modules/setting.js

const mutations = {
  setTheme (state, newTheme) {
    state.theme = newTheme
  }
}

Son1.vue

<button @click="updateUser">更新个人信息</button> 
<button @click="updateTheme">更新主题色</button>

<script>
export default {
  methods: {
    updateUser () {
      // $store.commit('模块名/mutation名', 额外传参)
      this.$store.commit('user/setUser', {
        name: 'xiaowang',
        age: 25
      })
    }, 
    updateTheme () {
      this.$store.commit('setting/setTheme', 'pink')
    }
  }
}
</script>

Son2.vue

<button @click="setUser({ name: 'xiaoli', age: 80 })">更新个人信息</button>
<button @click="setTheme('skyblue')">更新主题</button>

<script>
methods:{
// 分模块的映射
...mapMutations('setting', ['setTheme', '...']),
...mapMutations('user', ['setUser', '...']),
}
</script>

相关推荐

  1. Vue获取模块mutations方法

    2024-06-11 20:38:05       31 阅读
  2. vueaction与mutation 区别

    2024-06-11 20:38:05       29 阅读
  3. Vue3: 获取元素DOM方法

    2024-06-11 20:38:05       49 阅读
  4. 获取目标进程导入DLL模块地址方法

    2024-06-11 20:38:05       41 阅读
  5. uniapp中action与mutation区别

    2024-06-11 20:38:05       36 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-11 20:38:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-11 20:38:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-06-11 20:38:05       82 阅读
  4. Python语言-面向对象

    2024-06-11 20:38:05       91 阅读

热门阅读

  1. Python与MySQL连接和使用

    2024-06-11 20:38:05       29 阅读
  2. Python极简美学:用一行代码完成的20个日常任务

    2024-06-11 20:38:05       29 阅读
  3. 使用TensorFlow和Keras对以ResNet50模型进行微调

    2024-06-11 20:38:05       29 阅读