Hook(2): useEffect
userEffectは、コンポーネントDidMount、コンポーネントDidUpdate、およびコンポーネントWillUnmount機能を提供することができる.
useEffectの基本フォーマットは、
次の説明では、最初のレンダー(First Render)をマウント(Load)に置き換えます.
空の配列をmountでのみ実行されるコード、2番目のパラメータに入れます.
mountおよび特定の変数を変更するたびに実行されるコードは、2番目のパラメータの配列に変更する変数を追加します.
スクリーンアレンジ時(clean-up、クローズ時)に実行するコードは、最初の関数にコードを返すだけでよい.
2番目のパラメータに次の特定の変数名を含む配列を指定すると、その変数の状態が変化するたびに配列が実行されます.
リファレンス
velog.io/@bigbrothershin/Til-reactライフサイクル
useEffectの基本フォーマットは、
useEffect(() => {}, [])
、2番目のパラメータ、および1番目の関数の戻り値によって機能が異なります.既定では、すべてのレンダリングが完了すると実行されます。
次の説明では、最初のレンダー(First Render)をマウント(Load)に置き換えます.
1. componentDidMount
空の配列をmountでのみ実行されるコード、2番目のパラメータに入れます.
useEffect(() => {}, [])
2. componentDidUpdate
mountおよび特定の変数を変更するたびに実行されるコードは、2番目のパラメータの配列に変更する変数を追加します.
useEffect(() => {}, [특정 변수])
2番目のパラメータを省略すると、mountを含むレンダリングのたびに、propsまたはstate値が変更されるたびに実行されます.useEffect(() => {})
3. componentWillUnmount
スクリーンアレンジ時(clean-up、クローズ時)に実行するコードは、最初の関数にコードを返すだけでよい.
useEffect(() => {return (...);}, [])
[例]import "./styles.css";
import React, { useEffect } from "react";
import { useState } from "react";
export default function App() {
const [count,setCount] = useState(0);
const test = () => {
setCount(count+1);
}
useEffect(()=>{
console.log(count);
})
return (
<div className="App">
<button onClick={test}>카운트 {count}</button>
</div>
);
}
userEffectの2番目のパラメータは省略されているため、レンダリングのたびに実行されます.2番目のパラメータに次の特定の変数名を含む配列を指定すると、その変数の状態が変化するたびに配列が実行されます.
useEffect(()=>{
console.log(count);
}.[count])
*実際、上記のコードの状態はcountのみ変化する可能性があるため、第1の方式のuserEffectと第2の方式のuserEffectは同じである.リファレンス
velog.io/@bigbrothershin/Til-reactライフサイクル
Reference
この問題について(Hook(2): useEffect), 我々は、より多くの情報をここで見つけました https://velog.io/@hyunn/Hook2-useEffectテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol