私はパフォーマンスについてのドキュメントを読んできましたが、私の質問に対する答えは見つかりませんでした。スタートアップ時に反応コンポーネントを一度だけレンダリングする方法は?
私のアプリケーションには、いくつかのプロパティに基づいて表示されるボタンがたくさんありますが、その特性を決して変えないだろう。次に、私はこのonKeyDown
イベントハンドラを持っています。これはいくつかのキーをリスンし、別のコンポーネントを更新します。
私の問題は、キーを押してこのコンポーネントを更新すると、他のすべてのボタンもレンダリングされることです(React dev tools for Chromeで観察)。私はshouldComponentUpdate(nextProps, nextState)
を私のボタンに実装していませんが、Reactはデフォルトでこの動作をしてはいけませんか?つまり、this.props
とnextProps
を比較しても、まったく同じ場合はrender()
に電話しないでください。
私は、アプリケーションの起動時に一度だけレンダリングする必要があるすべてのコンポーネントについて、これを自分自身で行うはずですか?
EDIT:PureComponent
で問題が解決しそうです...しかし、その代わりに新しい質問を作成するので、私は関連質問でこれを更新しています:ドキュメントはすべてを持ってお勧めしませんなぜ
コンポーネントはデフォルトでPureComponentに基づいていますか?Component
の代わりに、デフォルトでPureComponent
を使用することについての議論は何ですか?
パフォーマンス上の問題がありますか、それともそのボタンを更新しないようにしたいのですか? – mguijarr
後者は、ちょうどいい気分にはならない...私が知っているのは、時期尚早の最適化である可能性があるということです。しかし、私はちょうど尋ねています:) –
React.Componentの代わりにReact.PureComponentを見てください(https://facebook.github.io/react/docs/react-api.html参照) – mguijarr