-
useEffectとはReact 2022. 5. 7. 16:10
useEffect(<callback function>,<dependency - optional>)
:フックを使用すると、コンポーネントでside-effectを実行できる。
side-effectの例としては、データの取り込み、DOMの直接更新、タイマーなどがある。
基本的にuseEffectは全てのrenderに反応をする。
useEffect(() => { })
App component
import { useState, useEffect } from "react"; function App() { const [count, setCount] = useState(1); const [name, setName] = useState(""); const handleCountUpdate = () => { setCount(count + 1); }; // renderする度呼ばれる useEffect(() => { console.log("rendering"); }); const handleInputChange = (e) => { setName(e.target.value); }; return ( <div> <button onClick={handleCountUpdate}>update</button> <span>count: {count}</span> <input type="text" value={name} onChange={handleInputChange} /> <span>name: {name}</span> </div> ); } export default App;
useEffect(() => { }, [value])
上記のケースはnameやcountにイベントが発生した時、いずれもuseEffectが起きる。
ということで、特定のstateに対してuseEffectを起こす場合は、useEffectの2番目の引数にstateを
追加すれば良い。例では、count buttonを押下する度にconsoleが出力される。
useEffect(() => { }, [])
2番目の引数に空きarrayが入る場合は、componentが最初マウントした時しかuseEffectが動かない!!
'React' 카테고리의 다른 글
useState lazy initialization (0) 2022.08.20 custom hook (0) 2022.05.21 HOOK- useState (0) 2022.05.04 Event-Handler② (0) 2022.05.03 Event-Handler① (0) 2022.05.03