Vuex 在 vue 2 中真的有必要吗?

Is Vuex really necessary in vue 2?

想象一下下面的 medium/large 应用程序使用 vue 2(使用 vue 3 这将很容易回答感谢组合 api),我们得到 App.vue X 数量组件:

假设“Children c”和“Comp A”使用相同的状态(或如某些人所说的单一事实来源)。话虽如此,我们可以使用 vuex 将状态存储在一个地方,问题是现在我们有一个 global 状态用于一些需要在两个远距离组件之间共享的数据,但老实说,我只是不知道这是否是一个好习惯。

现在如果相同的需求在某些组件之间出现不同的状态,我们将不得不重复相同的方法,为需要使用相同数据的某些组件创建许多全局 vuex 存储。

现在我们也有 Vue 2.6 Observables,这些 observables 在没有 vuex 开发工具支持的情况下与 vuex 基本相同,并且已经内置在 Vue 2 中,但是没有足够的文档。 这是 Thomas Findlay 的书 vue- the road to enterprise 中的一句话:

您认为,对于 medium/large 应用程序,vuex 在 vue 2 中真的值得吗?

一般情况下,Vuex或者Global state只有在不同parents的children需要访问相同的数据时才需要。例如,如果应用程序有多个分支,则在全局状态下进行身份验证是一种很好的方式。

使用事件总线是有效的,但一旦应用程序增长到一定程度,它就会变得令人费解并且难以理解数据流向哪些组件。

人们应该努力确定哪些数据实际上需要全局化,因为要付出开销的代价。

我理解你的抵制,全局是丑陋的,但是许多开发人员选择使用全局状态管理,所以它是有必要的。