小编Tak*_*ori的帖子

DDD 模型中的域 vs Vuex 操作

我正在研究 Vue 项目并且它变得越来越大,所以我重写了整个项目并应用了 MVVM 和 DDD 之类的架构,如下所示。

  1. UI层(MVVM ViewModel=vue/Model=Vuex)
  2. 领域层
  3. 服务器层 (Firebase)

但是,我想知道如何在架构中使用 Vuex 动作

在这个参考3. Use Actions to Make API Calls and Commit the Data 中,vuex action应该负责api,但我认为这不是最好的解决方案,因为这些点。

  1. 如果我们在 Vuex action 中编写每个逻辑,我们就会有巨大的动作列表。
  2. 如果这些逻辑(方法)不必提交任何状态(例如 checkCVC 用于检查 cvc 并且只返回 true/false 结果),为什么我必须编写为 Vuex 操作。
  3. 在哪里写域逻辑?都在行动?

所以我在没有动作的情况下编写域逻辑,并在其中提交状态(如果需要)。

[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)

dns domain-driven-design mvvm vue.js vuex

6
推荐指数
0
解决办法
825
查看次数

标签 统计

dns ×1

domain-driven-design ×1

mvvm ×1

vue.js ×1

vuex ×1