[React] Movie-app Notes - Memo
7301 ワード
📒 Nomad Coder RealJSを使用した映画Webサービスの作成
クラスノート
(ご理解いただけます)
コンポーネントを再レンダリングするのはいつですか?
Propsから続けましょう
3行目にレンダーポイントログを追加し、レンダーするタイミングを確認します.
次にOriginボタンをクリックすると、ボタンがChangeに変更されます.このプロセスでは、値が変化するため、
親構成部品
親構成部品に数千個の構成部品がある場合、1つのステータスは変更されますが、数千個の構成部品が再レンダリングされます.これにより、アプリケーションの速度が低下し、効率が低下します.
これを防ぐためには、選択的にレンダリングする必要があります.
元のボタン要素は、パラメータとして
最初とは異なり、resetは再レンダリングされていない様子を決定します.
+)後の俳優は
クラスノート
# 5. Memo
memo()
を使用して、レンダリング時に実行される関数を制御します.(ご理解いただけます)
コンポーネントを再レンダリングするのはいつですか?
Propsから続けましょう
3行目にレンダーポイントログを追加し、レンダーするタイミングを確認します.
<script type="text/babel">
function Btn({ name, onClick }) {
console.log(name, 'was rendered'); // render point log
return (
<button
onClick={onClick}
style={{
backgroundColor: 'gray',
border: 0,
borderRadius: 20,
padding: 10,
color: 'white',
margin: '10px',
}}
>
{name}
</button >
)
}
function App() {
const [value, setValue] = React.useState("origin");
const changeValue = () => setValue("change");
return (
<div>
<Btn name={value} onClick={changeValue} />
<Btn name="reset" />
</div>)
}
const root = document.getElementById("root")
ReactDOM.render(<App />, root);
</script>
の最初のアプリケーションを実行すると、Origin、ResetボタンはApp()
コンポーネントの状態に従ってレンダリングされます.次にOriginボタンをクリックすると、ボタンがChangeに変更されます.このプロセスでは、値が変化するため、
App()
が再描画されます.しかし、変更された値は最初のボタンのnameだけで、なぜresetが現れるのでしょうか。
親構成部品
App()
の状態が変化すると、構成部品自体が全体的にレンダリングされます.したがって、resetボタンに値の変化がなくても、再レンダリングされます.親構成部品に数千個の構成部品がある場合、1つのステータスは変更されますが、数千個の構成部品が再レンダリングされます.これにより、アプリケーションの速度が低下し、効率が低下します.
これを防ぐためには、選択的にレンダリングする必要があります.
Memo
を使用して、ステータスが変化した構成部品のみを再レンダリングできます.元のボタン要素は、パラメータとして
React.memo()
に渡され、親要素から返される.最初とは異なり、resetは再レンダリングされていない様子を決定します.
Summery
Memo
の用途について説明すると、アプリケーションドライバの高速で安定した変化値を選択的にレンダリングできます.+)後の俳優は
useEffect()
で、ここで使われているmemo()
に代わることができます.reactプロジェクトを実際に作成する場合は、レンダリングを制御するためにメモを書くのではなく、主にuseEffect()
を使用します.あとでReact Hooksについて知りましょうReference
この問題について([React] Movie-app Notes - Memo), 我々は、より多くの情報をここで見つけました https://velog.io/@qeiqiem/React-Movie-app-Notes-Memoテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol