LEARN REACT_ESCAPE HATCHES_Lifecycle of Reactive Effects ๐Ÿ‘‰ Effect dependencie

์„œ์ •์ค€ยท2023๋…„ 7์›” 2์ผ
0

react.dev

๋ชฉ๋ก ๋ณด๊ธฐ
2/5

์ถœ์ฒ˜: React doc

All variables declared in the component body are reactive

All values inside the component (including props, state, and variables in your componentโ€™s body) are reactive. Any reactive value can change on a re-render, so you need to include reactive values as Effectโ€™s dependencies.

ex)

function ChatRoom({ roomId, selectedServerUrl }) { // roomId is reactive
  const settings = useContext(SettingsContext); // settings is reactive
  const serverUrl = selectedServerUrl ?? settings.defaultServerUrl; // serverUrl is reactive
  useEffect(() => {
    const connection = createConnection(serverUrl, roomId); 
    connection.connect();
    return () => {
      connection.disconnect();
    };
  }, [roomId, serverUrl]); 
  // ...
}

๐Ÿ‘‰ Effect dependencie์— state, prop๋ฟ๋งŒ ์•„๋‹ˆ๋ผ re-render๋™์•ˆ ๋ณ€ํ•˜๋Š” ๋ณ€์ˆ˜๋„ ํฌํ•จ์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

  • reactive
    "๋ฐ˜์‘ํ˜•"์ด๋ผ๋Š” ์‚ฌ์ „์  ์˜๋ฏธ. ์ด๋Š” React์˜ ์ƒํƒœ(state) ๊ฐœ๋…์— ๋”ฐ๋ผ, ๋ณ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž๋™์œผ๋กœ ๋‹ค์‹œ ๋ Œ๋”๋ง๋˜์–ด UI๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
profile
ํ†ตํ†ตํ†ตํ†ต

0๊ฐœ์˜ ๋Œ“๊ธ€