ReactJS - 防止重新渲染子项

时间:2016-04-05 21:32:00

标签: javascript reactjs

我有一个包含3个孩子的父React组件,如下所示:

var Parent = React.createClass({
   render: function() {
     return (<div>
         <C1/>
         <C2/>
         <C3/>
       </div>)
   }
})

我试图根据当前的父状态改变孩子的位置。所以在不同情况下我需要返回 C1,C3,C2 C3,C2,C1 等。 但我想要这样做而不重新渲染孩子。 我试图在每个子节点上使用 shouldComponentUpdate ,但是它会调用那些在父节点渲染方法中没有改变位置的组件。 因此,如果最初返回 C1,C2,C3 然后 C2,C1,C3 ,那么 shouldComponentUpdate 将被调用 C3 但是不适用于 C1 C2 所以在这种情况下我可以在C3中返回false并阻止重新渲染,但我不明白为什么不为子项调用shouldComponentUpdate这确实改变了他们的立场。

有什么建议吗?谢谢。

1 个答案:

答案 0 :(得分:2)

看看http://facebook.github.io/react/docs/create-fragment.html 设计了键控片段来解决这类问题;)