我有一个带有标题和描述的项目静态列表,我想在多个单独的组件中使用,我需要使用状态吗?



它是流程中的步骤列表,如下所示

[
{ title: 'Upload file', description: 'Here you can upload your file and ....'},
{ title: 'Pick a color', description: 'You can choose any primary color or ...'}
{...},
{...}
]

现在我有多个组件使用这个列表,我看到了在这些组件中使用它的多种方法:

A)我将从中创建一个对象并将其存储在文件中,然后将其作为参数传递给我的顶级组件。然而,使用它的组件嵌套在不同的级别。

B)我将创建一个对象,并将其存储在文件中并导出。然后,我将把它导入到每个使用它的组件中。

C)将其存储在上下文中并使用该上下文。然而,我想知道这比A和B有什么好处?

我是否缺少任何选项?你会推荐其中一种方法吗?如果是,为什么?如果你有任何关于这个主题的阅读材料,我想学习soe

关于代码的其余部分没有太多信息,但通常我会选择选项b。如果列表从不更改,则不需要状态或上下文。如果您不需要类型,您甚至可以考虑将其放在.json文件中,因为它更像是配置而不是代码。

如果您需要更改检测列表,您可以选择:

  • 仅在一个组件中使用时的状态
  • 在多个组件之间共享时的上下文

不要这样做(A),它将导致prop钻取,你将被迫通过与之无关的组件传递上下文数据。

如果此列表是静态的,并且不动态更改,则B)就可以了。

如果数据确实需要改变,C)是可以的,但是当你真正需要这种能力时,你可以在第一次做B之后引入它。然而,我建议你只在深度注入(注入"服务")中使用上下文。转换成引用不会(或很少更改)的组件,并使用更好的以性能和并发安全的方式共享状态的东西,如zustand。

最新更新