Custom Hooks
useState, useContext, useEffect ๋ฑ์ Hook๋ ์ ์ฉํ์ง๋ง, ๊ธฐ์กด์ hook๊ณผ ํจ๊ป ๊ตฌ์ฒด์ ์ธ ๋ก์ง์ ํน์ ์ํฉ์์ ์ฌ์ฉํ๊ธฐ ์ํ ๊ตฌ์ฒด์ ์ธ Hook์ ํ์์ฑ
์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ์ฌํญ์ ๋ง๋ ์์ ๋ง์ Hook
Hook์ ์ด๋ฆ์
use + ๋๋ฌธ์
๋ก ์์ํ๋ค(์ปดํฌ๋ํธ๊ฐ ๋๋ฌธ์๋ก ์์ํ๋ ๊ฒ ์ฒ๋ผ)
์ํ์ ์ํ ์ ์ฅ ๋ก์ง์ ๊ณต์
CustomHook์ ์ํ์์ํ๋ฅผ ์ ์ฅํ๋ ๋ก์ง์ ํจ๊ป ์ ์ฅํ๊ณ ์ ๊ณต
์ฌ๋ฌ ๊ณณ์์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์ฉ๊ฐ๋ฅ
Hook์ ์ฌ์ฉํ๋ฉด Hook
๋ชจ๋ ์ฌ์ฉ์ ์ ์ ํจ์๊ฐ CustomHook์ ์๋๋ค
ํจ์ ๋ด๋ถ์ ํ๋ ์ด์์ Hook์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ Custom Hook์ผ๋ก ๋ณผ ์ ์๋ค
Hook์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ
useEffect ๋ถ๋ถ์ roomId, serverUrl ์ react ๊ฐ์ ํตํด ์๋ก์ด ์ฐ๊ฒฐ์ ๋ง๋ ๋ค.
์ด๋ ๊ฒ hook์ ์ฌ์ฉํ๋ ๋ก์ง์ ์ปค์คํ ํ ์ผ๋ก ๋ถ๋ฆฌํ ์ ์๋ค.
roomId, serverUrl์ ์ด๊ธฐ ๊ฐ์ผ๋ก ๋ฐ๋ ์ปค์คํ ํ ์ผ๋ก ๋ถ๋ฆฌํ ์ ์๋ค.
useChatRoom์ chatRoom์ ์ฐ๊ฒฐํ๋ ์ธ๋ถ ๋ก์ง์ ์จ๊ธฐ๊ณ ์ ๋ ฅ์ผ๋ก roomId์ serverUrl๋ง ๋ฐ๋๋ค.
์ด์ chatRoom์ ์ฐ๊ฒฐํ๊ธฐ ์ํด์ useChatRoom()์ roomId์ serverUrl๋ง ์ ๋ ฅ์ผ๋ก ๋ฃ์ผ๋ฉด ๋๋ค.
์ปค์คํ
ํ
์์ ์ด๋ฒคํธ ๋ฆฌ์ค๋ ๋ถ๋ฆฌ
์ฃผ์ ์ฌํญ
๊ธฐ๋ณธ Hook ์์ฒด์ ๋ํ ๋ํผ hook ์ง์
useEffect์์ ํ ๋ฒ๋ง ์คํํ๋ ์ปค์คํ ํ ์ ๋ง๋ค๊ธฐ ์ํด ์๋์ useMount๋ฅผ ๋ง๋ค์๋ค
ํด๋น ํ ์ผ๋ก ๋ค์ด์ค๋ fn ํจ์ ๋ด๋ถ์๋ ์ด๋ ํ react ๊ฐ๋ค์ด ์์์ง ๋ชจ๋ฅธ๋ค.
ํ์ง๋ง useEffect๋ ์์กด์ฑ ๋ฐฐ์ด์ด ๋น ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ react ๊ฐ๋ค์ ๋ฐ์ํ์ง ์๋๋ค.
Last updated