Jieunny의 블로그

useEffect 본문

React/Nomadcoders

useEffect

Jieunny 2021. 12. 2. 14:12
  • 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