假设我有一个父组件,它将用户设置保存在其状态中,并通过将其作为对象传递给所有子组件来同步应用程序中的设置。为了论证,假设有两个其他子组件,一个称为组件,其中包含一个表单,用户在其中输入其设置并单击提交以提交其设置。另一个组件根据用户在早期表单中为应用程序选择的设置显示/隐藏各种元素或其他组件。这两个组件不会同时呈现,只有用户提交表单后才会显示组件。
现在,我发现自己陷入两种方法之间:一种是在组件内部也保留所有设置状态,并且每当输入更改时,只相应地更新组件状态,通过为每个输入提供处理程序,在用户提交表单后仅通过回调(将更新组件的状态)将所有这些设置传递到组件。 或者,使成为无状态组件,并将所有输入处理程序作为回调(或作为一个统一的回调)传递给组件,然后在每次输入更改时更新状态。
作为一个老派的Web开发人员,我更喜欢第一种方法,因为它只更新一次组件,因此只重新呈现其所有子组件一次,而我的组件仍然独立于组件,并且它们的唯一接口是回调,一次传递整个设置对象。
另一方面,第二种方法将所有逻辑和处理从组件中分离出来,消除了冗余状态,并将其作为一个简单的UI“视图”组件。这看起来像我见过的许多React应用程序中使用的常见设计模式。
哪种方法更好,为什么?我还错过了什么吗?您如何处理此问题?在React中,父子交互的最佳实践是什么?您希望子组件与其环境封装和独立程度有多高? 您希望从父级传递多少个回调?
我也会非常感激一些好的参考和阅读材料。
谢谢。
现在,我发现自己陷入两种方法之间:一种是在组件内部也保留所有设置状态,并且每当输入更改时,只相应地更新组件状态,通过为每个输入提供处理程序,在用户提交表单后仅通过回调(将更新组件的状态)将所有这些设置传递到组件。 或者,使成为无状态组件,并将所有输入处理程序作为回调(或作为一个统一的回调)传递给组件,然后在每次输入更改时更新状态。
作为一个老派的Web开发人员,我更喜欢第一种方法,因为它只更新一次组件,因此只重新呈现其所有子组件一次,而我的组件仍然独立于组件,并且它们的唯一接口是回调,一次传递整个设置对象。
另一方面,第二种方法将所有逻辑和处理从组件中分离出来,消除了冗余状态,并将其作为一个简单的UI“视图”组件。这看起来像我见过的许多React应用程序中使用的常见设计模式。
哪种方法更好,为什么?我还错过了什么吗?您如何处理此问题?在React中,父子交互的最佳实践是什么?您希望子组件与其环境封装和独立程度有多高? 您希望从父级传递多少个回调?
我也会非常感激一些好的参考和阅读材料。
谢谢。