渲染所有可能的元素或根据请求渲染

时间:2016-05-24 12:31:08

标签: javascript html css reactjs

所以我有一个带有右侧边栏的应用程序,其可见性通过按钮切换。在那个侧边栏中,[一次]可以有几个东西中的一个 - 聊天,帮助,搜索。我正在从具有类似功能的应用程序中查看一些简单的HTML,并注意到它们已经渲染了所有节点,但只是通过CSS隐藏。

由于我需要做同样的事情,我在想是否这对React来说是个好主意。但后来我意识到React元素有一个状态,当更新时调用render方法。因此,我可以使用状态来存储侧边栏是否打开以及侧边栏内部的内容。

这是React的做事方式吗?是否更好地渲染所有节点,即使它们不可见,或者通过状态更改请求渲染节点更好?

1 个答案:

答案 0 :(得分:0)

我的感觉是,只渲染可见的内容将是更标准的React方式,但在这种情况下,这主要是一个性能决策。如果您渲染所有内容并仅使用CSS切换可见性,则第一次渲染将花费更长时间(但时差可能不相关甚至不明显)。如果只渲染可见的部分,每当侧边栏内容发生变化时,React都需要做一个小的重新渲染。 (这可能也不是明显的时间。)

如果您想测试性能,我的建议是尝试两者。但我认为你不管怎样都不会出错。