Javascript 带有后端REST API的Vue应用程序的设计模式

Javascript 带有后端REST API的Vue应用程序的设计模式,javascript,vue.js,axios,vuex,Javascript,Vue.js,Axios,Vuex,基本架构是一个服务器端呈现的HTML页面,其中Vue.js处理一些(但不是全部)站点页面的表示层。我们正在制作一些类似Trello卡或Github问题的东西。主数据模型是一个“任务”对象,它具有各种属性:进度状态、子任务和注释 我们希望在页面上显示这些对象,允许用户创建和更新它们及其子对象,这些子对象作为单独的组件呈现 我们的问题在于找到正确的方法将对象的更改传递到后端服务器,然后再传递回来。我们使用Axios与后端(在Django Rest框架上运行)通信 最初,我们实现了一个复杂的观察者链

基本架构是一个服务器端呈现的HTML页面,其中Vue.js处理一些(但不是全部)站点页面的表示层。我们正在制作一些类似Trello卡或Github问题的东西。主数据模型是一个“任务”对象,它具有各种属性:进度状态、子任务和注释

我们希望在页面上显示这些对象,允许用户创建和更新它们及其子对象,这些子对象作为单独的组件呈现

我们的问题在于找到正确的方法将对象的更改传递到后端服务器,然后再传递回来。我们使用Axios与后端(在Django Rest框架上运行)通信

最初,我们实现了一个复杂的观察者链来跟踪应用程序中的状态变化,允许它们通过Vue组件的层次结构发送到Axios HTTP方法。然而,这似乎有点脆弱,维护起来肯定很复杂

我们应该改为使用Vuex来管理应用程序的状态吗?
或者是文档中描述的更简单的方法?

你对复杂的观察者链的想法对于扩大应用程序来说是完全危险的。维护所有排放物会有很多问题,尤其是当项目中有新人时。您应该在Vuex中保留对应用程序起作用的所有状态,它的实现非常简单,这将在将来为您带来巨大的好处

我建议使用Vuex。EventBus很有用,但不像Vuex存储那样有组织

针对您的场景使用Vuex的提示:

  • 我将所有API调用也放在我的商店操作中
  • 将您的店铺分成多个模块,使其更有条理
  • 在组件中使用计算属性来使用存储数据

这个问题太宽泛了,不适合这么做,但如果它有帮助的话,我在上面写了另一个答案。Vuex肯定会有所帮助,在商店操作中通过Axios调用端点。