2016-03-07 45 views
2

我建立一个reactjs应用程序,我有两个选项,可与同一空间和不同的布局呈现React组件隐藏或重新创建?

  1. 一个是隐藏组件的组件和附加其他部件在它上面 。

  2. 另一个选项是分别为组件 重新渲染并重新创建DOM。

阵营使用DIFF算法来比较和改变DOM的状态,作为组分是已经存在于DOM所以第一溶液可以工作得更快。但是它将拥有比第二种解决方案更多的内存数据。

另一方面,在第二种解决方案中,我们必须删除一个组件的DOM,再渲染另一个组件并为其创建DOM。这看起来很多工作!

我很困惑,我应该遵循哪种方法?

<Component1/> 
<Component2/> 

解决方案1:Hide <Component1/> and Append <Component2/> in the same space.

解决方案2:Remove <Componen1/> and Append <Component2/> in the same space

+0

是不同的组件?组件2是否与组件1具有不同的内容? – Guy

+0

您应该测量并比较结果。最后,您很有可能会触发浏览器的布局/重绘 - 无论您最终选择哪种选项。 – Andreyco

+0

它们有不同的内容! –

回答

1

你过早优化

这可以作为描绘。你可能已经在这个问题上花费了更多的工程时间,而不是值得的。选项2实施起来更简单,推理更简单,并且是使用React时的快乐途径。

如果在构建它之后,您觉得它执行得太慢,那么您应该执行一些性能分析并找出瓶颈。直到并且仅当这种分析表明DOM元素的重新创建是瓶颈时才需要担心选项1。

+0

如果在反应中更好地理解我的概念,那么我会说这是花的时间! –