【问题标题】:What Portion of The Data Should Be Stored Using Vuex?应该使用 Vuex 存储哪一部分数据?
【发布时间】:2021-02-10 12:21:00
【问题描述】:
您好,我决定在我的应用程序中使用 Vuex 进行状态管理。
我之前在 Flutter 中体验过状态管理,并且大部分数据是使用 Flutter 中的状态管理存储的,而不是在 Widgets 中。
当我使用 Vuex 时,我的大部分数据是否应该存储在存储中,分为模块?还是应该使用 Vuex 仅存储全局数据并将我的大部分数据保留在组件中?
我找不到详细的答案,但我看到如果您在组件树中需要多个发射,那么您应该考虑将数据放入存储中。
非常感谢您的帮助,我真的很喜欢每一个答案!
【问题讨论】:
标签:
vue.js
vuejs2
vuex
vuex-modules
【解决方案1】:
根据我的经验,这实际上取决于您的应用程序。但是一个好的经验法则是保持全局数据的存储,并且多个组件需要使用它或将使用它,考虑未来在这种情况下,如果应用程序将在未来扩展,将需要什么数据全球范围内。这些数据可以进入 Vuex Store。
此外,我发现使用 Store 进行异步调用和处理这些数据可以让我的组件代码更加简洁。
对于您的具体问题,是的,您的大部分数据都应该存储在那里。可以把它想象成你的组件只负责他们所做的事情,他们不必知道数据是如何到达他们的以及数据是如何处理的,他们只知道他们需要一些数据并且他们得到了它。这通常会使代码更易于理解。
我发现这些文章Should I Store This Data in Vuex 或When Why and How to use Vuex 总结了我在这个主题上的大部分发现和经验,欢迎您在这里阅读更多内容。
作为旁注,使用类也有很大帮助,如果它对您来说是一种学习项目,请尝试尝试不同风格的项目结构。例如,您可以拥有一个 [some_name]_helper.js 或 [data_type]_processing.js 文件,其中包含处理数据的逻辑,或处理您在应用程序中广泛使用的数据,如日期,使您的代码尽可能模块化有很大帮助,最终这就是Vuex 试图让你更轻松的事情。
(尝试学习 Vuex 模式(getter、mutations、action)并尽可能地理解它,这是您决定哪些数据具体放在项目中的最佳方式)