vuex 2 个模块之间修改数据

简介: vuex 2 个模块之间修改数据

1. 前言

  1. 最近找工作 遇到了一些有意思的面试题记录下来
  2. vuex 2 个模块之间修改数据,这个平常开发 确实没用到,而且也破坏了vuex单向数据流的原则,可能导致数据状态管理的混乱
  3. 但是既然问了应该就有解决办法 所以简单写下

2. 条件

  1. vuex 中 有user 和 common  2 个模块

3.  comm 模块

// common.js (common module)
const state = {
  dataToBeModified: '',
};
const mutations = {
  SET_DATA(state, payload) {
    state.dataToBeModified = payload;
  },
};
export default {
  namespaced: true,
  state,
  mutations,
};

4. user 模块

  1. 在user模块的actions中,使用commit来触发common模块的mutations
  2. 从而修改common模块的数据。

// user.js (user module)
const actions = {
  updateUserCommonData({ commit }, payload) {
    commit('common/SET_DATA', payload, { root: true });
  },
};
export default {
  namespaced: true,
  actions,
};

5. 组件使用

import { mapActions } from 'vuex';
export default {
  // Component options...
  methods: {
    ...mapActions('user', ['updateUserCommonData']),
    updateCommonData() {
      this.updateUserCommonData('New data'); 
    },
  },
};

参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
4天前
|
存储 JavaScript 容器
还不懂Vuex是什么?和组件之间的关系是什么?
还不懂Vuex是什么?和组件之间的关系是什么?
|
4天前
|
JavaScript
Vue全局事件任意组件间通信
Vue全局事件任意组件间通信
12 0
|
4天前
在Vuex中,如何处理不同模块之间的状态同步?
在Vuex中,如何处理不同模块之间的状态同步?
18 1
|
4天前
|
资源调度 JavaScript
如何使用 Vuex 管理应用的状态?
如何使用 Vuex 管理应用的状态?
18 3
|
4天前
|
存储 缓存 JavaScript
第十三章:vuex状态(数据)管理
第十三章:vuex状态(数据)管理
36 0
|
4天前
Vuex 为什么要分模块并且加命名空间
Vuex 为什么要分模块并且加命名空间
14 0
|
4天前
|
JavaScript 前端开发
Vue状态管理:请解释Vuex中的action是什么?它们有什么用途?
Vue状态管理:请解释Vuex中的action是什么?它们有什么用途?
86 2
|
4天前
|
存储 人工智能 JavaScript
Vue组件之间的通信方式都有哪些?
Vue组件之间的通信方式都有哪些?
|
10月前
|
存储 JavaScript 前端开发
Redux 状态管理库的原理及使用方式
Redux 是一种流行的状态管理库,用于在 JavaScript 应用程序中管理应用的状态。它遵循单一状态树的原则,将整个应用的状态保存在一个状态树中,并通过纯函数来修改状态。Redux 的原理和使用方式如下:
|
存储 JavaScript
vue多组件之间共享(vuex)
vue多组件之间共享(vuex)
97 0