質問: react.usememo(() => { ({ id, 明らかにそうではありません。 react.memoが問題を解決することはわかっていますが、usememoの動作を示す必要があり、使用できる代替構文があることを期待しています。
回答: react.memoとreact.usememoはまったく同じではありません(名前の類似性に依存しないでください)。 react.memo doc からの引用は次のとおりです。 react.memoは 高次コンポーネント です。 そのため、同じプロパティで同じ出力をレンダリングする場合、コンポーネントのレンディションを最適化できるのはhocです。一方、react.usememoはより一般的で、 メモされた値を返します : 「作成」関数と依存関係の配列を渡します。 usememoは、依存関係(aまたはb)のいずれかが変更された場合にのみ、メモされた値を再計算します。 const memoizedvalue = usememo( () => computeexpensivevalue(a, b), [a, b] ); また、ハッキングしてreact.memoの代わりに使用することもできますが、それはその目的ではなく、役立つ以上に混乱を招きます。 usememoはフックであり、 特定の使用規則 に従います。そして、この警告もあります: 将来的には、reactは、以前にメモされた値を「忘れる」ことを選択し、オフスクリーンコンポーネントのメモリを解放するなど、次回のレンダリング時に再計算する可能性があります。コードがusememoなしでも機能するように記述してください—次に、それを追加してパフォーマンスを最適化します。