shouldComponentUpdate
boolean shouldComponentUpdate(object nextProps, object nextState)
新しいpropsまたはstateを受け取り、描画(render)される前に実行されます。
このメソッドは初期描画(render)、またはforceUpdate
が使用された際に呼び出されることはありません。
新しいpropsとstateへの変更がコンポーネントの更新を必要としないことが確実な場合は、 このメソッドでfalseを返すようにして下さい。
shouldComponentUpdate: function(nextProps, nextState) {
return nextProps.id !== this.props.id;
}
shouldComponentUpdate
がfalseを返すと、次にstateの変更があるまでrender()
は完全にスキップされます。
(加えて、componentWillUpdate
とcomponentDidUpdate
は呼び出されません。)
デフォルトでは、shouldComponentUpdate
はstateが適切に変更された際の微細なバグを防ぐために常にtrueを返しますが、
もしstateを不変(immutable)なものとして常に扱うように気を付け、render()
内でpropsとstateを読み取り専用としている場合は、
古いpropsとstateを新しいものと比較することで、shouldComponentUpdate
を上書きすることが出来ます。
もし、パフォーマンスにボトルネックがある場合、特にコンポーネントが数十、数百もある場合は、
アプリケーションの速度を向上させるためにshouldComponentUpdate
を使用してみて下さい。