架构抉择01-前后端分离-不通子组件之间获取相同数据的权衡

背景说明:

在vue+springboot的场景中:
假设有两个子组件A和B,
假设A已经的从后端获取一个返回JSON了,现在B也需要这样一个JSON,
那么这个JSON是直接组件A中获取,还是直接从Springboot中获取比较好,
哪一个比较好,比较一下他们优劣势

比较:

在 Vue+SpringBoot 的场景中,当两个子组件 A 和 B 都需要一个相同的 JSON 数据时,你可以选择在组件 A 中获取然后传递给组件 B,或者让组件 B 直接从 SpringBoot 后端获取。这里比较一下它们的优劣势:

  1. 从组件 A 获取并传递给组件 B:

优势:

  • 减少网络请求:由于组件 A 已经获取了 JSON 数据,你可以避免组件 B 再次向后端发起请求,从而节省网络资源和请求时间。
  • 数据一致性:如果 JSON 数据是动态变化的,通过这种方式可以确保组件 A 和 B 的数据保持一致。

劣势:

  • 组件间耦合:组件 A 需要将数据传递给组件 B,这增加了两者之间的依赖性。如果未来需要调整组件结构,可能需要进行额外的修改。
  • 数据传递方式限制:如果组件 A 和 B 不是直接的父子关系,那么数据传递可能需要通过 Vuex、props 或 event bus 等方式实现,可能增加项目复杂度。
  1. 直接从 SpringBoot 中获取:

优势:

  • 解耦:组件 A 和 B 都独立地从后端获取数据,减少了它们之间的依赖性。这有助于提高组件的可复用性和项目的可维护性。
  • 数据实时性:当组件 B 需要获取最新的 JSON 数据时,它可以直接从后端获取,而不需要依赖组件 A 的数据。

劣势:

  • 增加网络请求:组件 B 需要向后端发起单独的请求以获取 JSON 数据,可能导致更多的网络请求和资源消耗。
  • 数据不一致的风险:如果 JSON 数据是动态变化的,组件 A 和 B 可能获取到的数据不一致。

综合考虑,如果组件 A 和 B 之间的数据一致性非常重要,而且它们之间有直接的父子关系,那么从组件 A 获取并传递给组件 B 可能是更好的选择。如果组件 A 和 B 是独立的,且对数据实时性要求较高,那么直接从 SpringBoot 中获取可能更为合适。总之,根据具体项目的需求和场景来决定最佳方案。

你可能感兴趣的:(架构,spring,boot,java)