在 React.js 中隐藏组件的正确方法

2024-01-30

假设你正在传递一个名为show到一个组件。如果 prop 值为 true,您应该正常渲染完整组件。如果为 false,则不应显示任何内容。

您可以通过两种方式执行此操作。

  1. 在组件的 render 方法中返回 null。
  2. 应用包含以下内容的 CSS 类display: none组件的 DOM 元素的属性。

哪些是正确的或首选的方法?


我认为这个问题不会有任何明确的答案。 每种方法都有其优点和缺点。

有了 CSS,你就拥有了:

  • 它可能会工作得更快
  • 如果再次显示控件,则无需考虑恢复子控件状态。

随着返回null:

  • 渲染的总 DOM 可能会小得多。如果您有许多可能隐藏的此类组件,这一点很重要。
  • 渲染的 html 中不会有冲突。假设您有表格视图。每个选项卡都是其自己的复杂表单,具有许多子控件。如果你有一些原始的 javascript/jquery/任何使用它们的 id/类名等的东西 - 很难确保每个选项卡/表单都有唯一的 id,除非你不渲染它们。

从我的角度来看,该决定将基于您的控制结构。如果它具有包含许多嵌套子项的复杂结构,并且您没有任何方法在再次打开时恢复它们的状态 - 请使用 CSS,但我想说这只是针对非常简单的控件的短期解决方案。在所有其他情况下,我都会选择不渲染组件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 React.js 中隐藏组件的正确方法 的相关文章