vuex分了多个模块,利用语法糖调用不同模块里的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// store/modules/a.js
export default {
  state: { ... },
  getters: { ... },
  mutations: { ... },
  actions: { ... }
}
  
// store/modules/b.js
export default {
  state: { ... },
  getters: { ... },
  mutations: { ... },
  actions: { ... }
}
  
// store/index.js
import Vuex from 'vuex';
import A from './modules/a';
import B from './modules/b';
  
const store = new Vuex.Store({
  modules: {
    a: A,
    b: B
  }
});
  
export default store;

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//vue页面<script>
import { mapState, mapMutations, mapActions } from 'vuex';
  
export default {
  computed: {
    // 使用mapState生成计算属性
    ...mapState({
      countA: state => state.a.count, // 从a模块获取状态
      countB: state => state.b.count, // 从b模块获取状态
    }),
  },
  methods: {    ...mapMutations('a', ['update']),
      // 使用mapActions生成方法
    ...mapActions({
    incrementA: 'a/increment', // 从a模块调用action
    incrementB: 'b/increment', // 从b模块调用action
   }),   someMethod(){    this.update(newValue); // 调用模块a中的mutation   }  },
};
</script>

  

posted @   90一代  阅读(110)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示