Jieunny의 블로그
useEffect 본문
- state가 변경되면 모든 코드가 re-render된다.
- state가 변경되도 re-render 하고 싶지 않은 코드가 있다면?
useEffect
- useEffect(iRunOnlyOnce, []);
- 첫번째 argument : 한번만 실행되게 하고 싶은 코드 (iRunOnlyOnce 는 function).
- 두번째 argument : 이 state가 변화될때만 첫번째 argument 코드가 re-render 됨 ([]로 비워두면 처음 한번만 실행됨).
function App() {
const [counter, setCounter] = useState(0);
const [keyword, setKeyword] = useState("");
const onClick = () => setCounter((prev) => prev + 1);
const onChange = (event) => setKeyword(event.target.value);
console.log("I run all the time");
useEffect(() => {
console.log("I run only 'keyword' changes.", keyword);},
[keyword]);
useEffect(() => {
console.log("I run only 'counter' changes.", keyword);},
[counter]);
useEffect(() => {
console.log("I run only once");}, []);
return (
<div>
<input
value={keyword}
onChange={onChange}
type="text"
placeholder="Searcg here..." />
<h1>{counter}</h1>
<button onClick={onClick}>Click ME</button>
</div>
);
}
export default App;
'React > Nomadcoders' 카테고리의 다른 글
Todo-list (0) | 2021.12.02 |
---|---|
Clean up function (0) | 2021.12.02 |
Props (0) | 2021.11.29 |
Minutes to Hours / Km to Miles Converter (0) | 2021.11.25 |
버튼 count 수 증가시키기 (0) | 2021.11.23 |