【发布时间】:2021-07-01 23:00:51
【问题描述】:
我和我的团队正致力于中大型应用的起步阶段。这是一个 Vue 2 客户端呈现的应用程序,带有 asp.net 核心后端。客户端将用于管理数以万计的商品及其状态。该应用程序处于早期阶段,我们一直在考虑可以重新构建现有客户端商店的方法。
由于我们都是新手,而且我们都是自学成才的,我们并不确定在 Vue 应用程序中数据管理的最佳模式是什么。
在 VueJS 应用程序中是否有推荐的数据管理模式?
我们目前的模式是这样的:
| |
| +-----------+ |
| | | | +-----------+ +-----------+ +------------+
| | API |---->| | | | | |
| | | | | Router |---->| Vuex |---->| Views/ |
| +-----------+ | | | | |<----| Components |
| ^ | ^ | | | | | | |
| | | | | +-----------+ +-----------+ +------------+
| | | | |Vue |
| | | | +---------------------------|-------------------------
| | | | |
|Client| -----------------------------------
+----|-|---------------------------------------------
| |
+---------|-|------
|Backend | v
| +----------+
| | |
| DB |
| |
| |
+----------+
我们有一个包含所有 API 端点的 API 控制器。加载应用程序时,在路由器的 beforeEnter 函数中,我们获取所有数据,然后将其提交到 Vuex 存储。然后当用户使用应用程序(添加/删除/编辑)项目时,存储被修改,然后 Vuex 调用 API 控制器并将数据发送到后端。
根据研究,我们对谁应该调用 API 以及 Vuex 应该存储哪些类型的数据提出了一些意见。一些博客和课程说 Vuex 是管理 API 的方式,但受人尊敬的 Vue 社区成员之间的论坛讨论却另有说法。然而,主要问题是 Vue 从 2018/19 年开始快速、不断变化的环境文章和讨论并不真正适用于今天的 Vue。
我们目前的想法不是从路由器提交到 Vuex,而是将数据从路由器传递到视图,然后将视图提交到存储。视图/组件也会调用帖子而不是 Vuex。这将限制商店的责任。
我们还研究了使用 Nuxt.js 的可能性,但他们的文档没有提供关于商店/API 管理的严格指导。
【问题讨论】:
标签: api rest vue.js nuxt.js vuex