React. パフォーマンスの向上
React. パフォーマンスの向上
Γ関数、オブジェクト管理
匿名関数宣言の回避
関数またはオブジェクトは、変数を宣言することによって使用されます.
メモリ割り当てのパフォーマンスのメリット ∮アニメーション
ブラウザレンダリング中のフレームが低下するため、アニメーションを避けます.
できるだけtransform CSSプロパティを使用します.
⊙ lazy loading
構成部品importは、定義された順序ですべて実行されます.
これにより、すべての構成部品が事前にロードされ、リソースオーバーヘッドが発生する可能性があります.
React.lazy関数を使用すると、ダイナミックインポートを使用して構成部品をレンダリングできます.
コンポーネント内のpropsまたはstateが変更されると、すべてのHTMLが再レンダリングされます.
すなわち、Mと呼ばれる1つの素子にAとBと呼ばれる2つの素子が含まれている場合、Aにのみ使用されるpropsがMで変更されると、AとBは再レンダリングされる.
memoという機能を使うことで、この点を改善することができます.
直接関連するpropsを変更しないと、memoで囲まれた構成部品は再レンダリングされません.
しかし、最終的には検証に必要なリソースも生成されるため、構成部品が大きい場合に使用することをお勧めします.
Γ関数、オブジェクト管理
匿名関数宣言の回避
関数またはオブジェクトは、変数を宣言することによって使用されます.
style={ { color : 'red' } }
→ let red = { color : 'red' } / style={red}
onClikc={()=>{}}
→ function 선언 후 삽입
ブラウザレンダリング中のフレームが低下するため、アニメーションを避けます.
できるだけtransform CSSプロパティを使用します.
構成部品importは、定義された順序ですべて実行されます.
これにより、すべての構成部品が事前にロードされ、リソースオーバーヘッドが発生する可能性があります.
React.lazy関数を使用すると、ダイナミックインポートを使用して構成部品をレンダリングできます.
import React, { lazy } from 'react';
// import Detail from '/detail.js';
let Detail = lazy(()=>{ return import('./Detail.js')});
<Suspense fallback={<div>loding...</div>}>
<Detail/>
</Suspense>
⊙ memoコンポーネント内のpropsまたはstateが変更されると、すべてのHTMLが再レンダリングされます.
すなわち、Mと呼ばれる1つの素子にAとBと呼ばれる2つの素子が含まれている場合、Aにのみ使用されるpropsがMで変更されると、AとBは再レンダリングされる.
memoという機能を使うことで、この点を改善することができます.
import React, { memo } from 'react';
let Child = memo(function(){
});
直接関連するpropsを変更しないと、memoで囲まれた構成部品は再レンダリングされません.
しかし、最終的には検証に必要なリソースも生成されるため、構成部品が大きい場合に使用することをお勧めします.
Reference
この問題について(React. パフォーマンスの向上), 我々は、より多くの情報をここで見つけました https://velog.io/@jodheeee/React.-성능개선テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol