Vue.js 自包含组件数据模型与主根数据模型

Vue.js 自包含组件数据模型与主根数据模型,vue.js,vue-component,Vue.js,Vue Component,我正在寻找有关如何实施Vue组件的反馈 我有一个Vue实例,其中包含订单列表和对当前订单的引用。让我们把这个根实例称为“orders” 设置当前订单后(基于单击列表中的一个订单),我将在“订单”中创建一个名为“当前订单”的新组件。“当前订单”有一个父级传递给它的属性,称为“订单id”,该属性在“当前订单”中用于调用订单数据并呈现可编辑表单 在“当前订单”中,除了与订单(客户等)相关联的元数据之外,我还有第三个组件包含一组项目,我们将这个最终实例称为“项目组” 以下是这些实例的总体布局: orde

我正在寻找有关如何实施Vue组件的反馈

我有一个Vue实例,其中包含订单列表和对当前订单的引用。让我们把这个根实例称为“orders”

设置当前订单后(基于单击列表中的一个订单),我将在“订单”中创建一个名为“当前订单”的新组件。“当前订单”有一个父级传递给它的属性,称为“订单id”,该属性在“当前订单”中用于调用订单数据并呈现可编辑表单

在“当前订单”中,除了与订单(客户等)相关联的元数据之外,我还有第三个组件包含一组项目,我们将这个最终实例称为“项目组”

以下是这些实例的总体布局:

orders
  current-order
    item-group
    item-group
    item-group
“订单”仅保存订单列表;它不保存任何订单数据。 “当前订单”保存与订单关联的元数据以及项目数据

在与同事讨论该模型时,他向我解释说,这不是实现该模型的最佳实践方式。他认为实现这一点的正确方法是保存根实例“orders”上所有组件的所有数据,而不是我实现它的方法——在每个级别保存数据

他解释的模型对我来说似乎不太容易维护。“current order”可以在应用程序的其他页面上使用,因此如果我在根实例中维护它的数据,那么我必须在我附加到它的所有根实例中维护它

按照我实现它的方式,只需传递组件一个order_id,它就会用数据填充自己

他继续向我解释,像我现在这样在组件上保存数据,可以通过重新呈现实例来重置,我对此不太理解

我的实现方式和他描述的方式都会起作用,但我正试图找出可维护性的最佳实践方法

注意:这不是一个大型水疗中心,我不认为Vuex能满足我们目前的目标


任何反馈都将不胜感激。

这取决于您的
子组件负责什么。如果
子组件
正在扩展父组件的功能,则应始终在父组件中维护该状态。例如,在基于
CRUD
的情况下,您不能为
create
update
创建单独的组件,而只能编写一个组件并在父组件中保持其状态(已更新/已创建)

如果在您的
当前订单中
您没有更新与订单相关的任何内容,则无需在
订单中维护其状态
,即如果元数据可以被视为您的
订单的单独实体
则无需在
父级
中维护它。但若order和它的meta都是一个实体,那个么您应该在父实体中维护它的状态