我正在研究 Vue 项目并且它变得越来越大,所以我重写了整个项目并应用了 MVVM 和 DDD 之类的架构,如下所示。
但是,我想知道如何在架构中使用 Vuex 动作
在这个参考3. Use Actions to Make API Calls and Commit the Data 中,vuex action应该负责api,但我认为这不是最好的解决方案,因为这些点。
所以我在没有动作的情况下编写域逻辑,并在其中提交状态(如果需要)。
[domain/talks.ts]
export const getTalk = (uid: string, talkTo: string,) => {
const server = new Talks(uid)
server.getTalks(talkTo).subscribe(talk => {
store.commit('profile/talks/updateTalk', {to: talkTo, talk: talk})
})
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很好,但这种方法在 Vue 组件中变得难以理解。
[Talk.vue]
<template lang="pug">
//display chat …Run Code Online (Sandbox Code Playgroud)