[React] Hook (useState, useEffect)
9796 ワード
Hookは素子の状態をより扱いやすくする機能です.
パラメータ
生成state変数の初期値戻り値
state変数と変数のsetterを配列に戻します. 生成されたstate変数は、構成部品のレンダリング時に一度だけ生成されます.
返されるsetterペアのstate変数を変更し、setStateを使用するたびに再enderして構成部品に渡します.
パラメータ
最初のパラメータとして関数を受け入れます.(適用する効果を提供します.)
2番目のパラメータとして配列することができる.(配列で指定した値を変更すると効果が適用されます.)
userEffectに渡される関数をeffectと呼びます.useEffectは、エレメントをレンダリングするたびに呼び出され、2番目のパラメータがない場合はeffectが実行されます.
レンダーが完了すると、DOMの更新後にマウントマウントポイントが読み込まれます.
componentDidMountとcomponentDidUpdateとcomponentWillUnmountを組み合わせた機能.
effectを関数に戻すと、コンポーネントWillUnmountが呼び出されるとeffectの戻り関数が呼び出されます.
登録されたevent listenerを消去するには、次のようにします.
2番目のパラメータで配列を渡すことができます.これにより、配列を2番目のパラメータとして使用すると、配列で指定した値を変更した場合にのみ効果が実行されます.アレイが空の場合は、最初のレンダリング時(ComponentDidMount)にのみ効果が得られます.
https://ko.reactjs.org/docs/hooks-state.html
https://ko.reactjs.org/docs/hooks-effect.html
useState
パラメータ
生成state変数の初期値
state変数と変数のsetterを配列に戻します.
返されるsetterペアのstate変数を変更し、setStateを使用するたびに再enderして構成部品に渡します.
import React, { useState } from 'react';
function Example() {
// "count"라는 새 상태 변수를 선언합니다
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
useEffect
パラメータ
最初のパラメータとして関数を受け入れます.(適用する効果を提供します.)
2番目のパラメータとして配列することができる.(配列で指定した値を変更すると効果が適用されます.)
最初のパラメータのみが与えられた場合(ComponentDidMount、ComponentDidUpdate)
userEffectに渡される関数をeffectと呼びます.useEffectは、エレメントをレンダリングするたびに呼び出され、2番目のパラメータがない場合はeffectが実行されます.
レンダーが完了すると、DOMの更新後にマウントマウントポイントが読み込まれます.
componentDidMountとcomponentDidUpdateとcomponentWillUnmountを組み合わせた機能.
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
// componentDidMount, componentDidUpdate와 같은 방식으로
useEffect(() => {
// 브라우저 API를 이용하여 문서 타이틀을 업데이트합니다.
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
最初のパラメータが返す関数
effectを関数に戻すと、コンポーネントWillUnmountが呼び出されるとeffectの戻り関数が呼び出されます.
登録されたevent listenerを消去するには、次のようにします.
useEffect(() => {
document.addEventListener("mouseleave", handle);
return () => document.removeEventListener("mouseleave", handle);
}, []);
2番目のパラメータを使用して効果を制限する場合
2番目のパラメータで配列を渡すことができます.これにより、配列を2番目のパラメータとして使用すると、配列で指定した値を変更した場合にのみ効果が実行されます.アレイが空の場合は、最初のレンダリング時(ComponentDidMount)にのみ効果が得られます.
useEffect(() => {
document.title = `You clicked ${count} times`;
}, [count]); // count가 바뀔 때만 effect를 재실행합니다.
関連項目:https://ko.reactjs.org/docs/hooks-state.html
https://ko.reactjs.org/docs/hooks-effect.html
Reference
この問題について([React] Hook (useState, useEffect)), 我々は、より多くの情報をここで見つけました https://velog.io/@sayi/React-Hook-useState-useEffectテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol