์ ๋์ธ ํ์ | ์ ํ์ ์ ์ง์ ํ ๋ ์ฌ๋ฌ๊ฐ์ง ํ์ ์ ์ฐ๊ฒฐํ์ฌ ์ง์ ํด๋ ์ ์๋ ๋ฐฉ์์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ์ OR ์ฐ์ฐ์ ||์ ๊ฐ๋ค !printTestํจ์๋ ํ๋ผ๋ฏธํฐ๋ก ๋ฌธ์์ด ํน์ ์ซ์ ํ์ ์ ์ ๋ฌ๋ฐ์ ์ ์๋ค.printTestํจ์ ๋ด๋ถ์์๋ ์ธ์๋ก ๋ฐ์์ค๋ ๊ฐ์ type
๐ useRef๋? > useRef๋ .currentํ๋กํผํฐ๋ก ์ ๋ฌ๋ ์ธ์๋ก ์ด๊ธฐํ ๋ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ref ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ๋ฐํ๋ ๊ฐ์ฒด๋ ์ปดํฌ๋ํธ์ ์ ์์ ์ฃผ๊ธฐ๋ฅผ ํตํด ์ ์ง๋๋ค. React ๊ณต์๋ฌธ์ - useRef useRef() ๋ ์ ์ฅ ๊ณต๊ฐ ๋๋ compone
Context API ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์ด๋ ํ ์ ๋ณด(๋ฐ์ดํฐ)๋ฅผ ๋ง๋ค๊ณ , ์์ ์ ์์ ์ปดํฌ๋ํธ๋ค์ ๋ชจ๋ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ค์ด props๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ์ฃผ๋ฉฐ ์ฝ๊ฒ ๊ฐ์ ๊ณต์ ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฆฌ์กํธ์ ๋ด์ฅ๋ ๊ธฐ๋ฅ์ด๋ค.๋ค์ ๋งํด, R
๐จ return ๊ฐ์ผ๋ก ์ซ์๋ฅผ ๋ฃ์ด์ฃผ์ง ์์ผ๋ฉด ๊ฒฝ๊ณ ๋ฐ์ !ํ์ ์คํฌ๋ฆฝํธ์์๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ํํ๋ ํน์ฑ์ ๊ฐ์ง๋ค!์ฆ ํ๋ผ๋ฏธํฐ์ ๊ฐ์๊ฐ ์ ์ธ๋ ๊ฒ๊ณผ ๋ง์์ผ ์๋ฌ ์์ด ์คํ๋๋ค ~๊ฐ์ ์ฝ๋๋ฅผ ํ์ ์คํฌ๋ฆฝํธ์์ ์์ฑํ๋ค๋ฉด?์ถ๊ฐ์ ์ผ๋ก ๋ค์ด์ฌ ์ ์๋ ํ๋ผ๋ฏธํฐ์ ๋ํด์ ?๋ฅผ ๋ฃ์ด
ํ๋ก๊ทธ๋๋จธ์ค lv3\_๋คํธ์ํฌ๐DFS๋ฅผ ์ ์ฉํ ์ฒซ ํ์ด์ฌ์ ๊ธฐ๋ก์ฐจ ์์ฑ! ํ๋ก๊ทธ๋๋จธ์ค AI ๊ฐ ์์ฒญ ์ด๋ ค์ด ,, dfs๋ง ์ถ์ฒํด์ค์ ๋ค ๊ฑด๋๋ฐ๋ค ๋ง์ฃผํ ์ ๋นํ ๋์ด๋์ dfs,, dfs์ ์์ด ๋๋ ๊ทธ ๋ ๊น์ง ๐ฅน1๏ธโฃ ์์ ๋ ธ๋๋ฅผ ์คํ์ ๋ฃ์ด๋๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌํ๋ค2๏ธโฃ
ํ์ ์คํฌ๋ฆฝํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํ์ ์ ๋ถ์ฌํ ์ธ์ด์ด๋ค. ์ฆ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ type, documentation ๋ฑ์ ํ ๋์ ํ์ธํ ์ ์๋ ์ธ์ด์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์๋ ๋ฌ๋ฆฌ ๋ธ๋ผ์ฐ์ ์์ ์คํํ๊ธฐ ์ํด ํ์ผ์ ํ ๋ฒ ๋ณํํด์ฃผ๋ ์ปดํ์ผ ๊ณผ์ ์ด ํ์ํ๋ค.ํ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉ
Cannot read properties of null... ํด๋น ์๋ฌ๋ UseState์ ์ด๊ธฐ๊ฐ์ null ๋ก ์ค์ ํด๋ ๊ฒฝ์ฐ, ๋ค์์ setter ํจ์๋ฅผ ํตํด ๊ฐ์ ์ ๋ฐ์ดํธ ํด์คฌ์์๋ props๋ก ๊ฐ์ ์ ๋ฌํ ๋ null ๊ฐ์ผ๋ก ์ฝํ ๋ ๊ณ์ ๋จ๋ ์๋ฌ์ด๋ค. ์๋ฌ
Http request๋ฅผ ๋ณด๋ผ ๋ reducer ํจ์ ๋ด๋ถ์์ ์์ฑํ ์ ์๋ค. ์๋ํ๋ฉด http request๋ ๋น๋๊ธฐ์ ์ธ ์์ ์ผ๋ก ์งํ๋๋ ๋ฐ๋ฉด Reducerํจ์๋ ๋๊ธฐ์ ์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด redux์ Reducerํจ์๋ฅผ ์ฌ์ฉํด์ http reques
Redux? redux๋ ์ปดํฌ๋ํธ๊ฐ์ ์ ์ญ ์ํ๊ด๋ฆฌ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค. ์ด์ ์น์ ์์ ๋ค๋ฃฌ context์ ๊ฐ์ ๊ฐ๋ ์ธ๋ฐ, context๋ ๋ฆฌ์กํธ์ ๋ด์ฅ๋์ด ์๋ ํดํท์ธ ๋ฐ๋ฉด redux๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. Redux vs Context context์ Redux
๐ Form? Form์์๋ ํ๋ ์ด์์ ๋ค์ํ ์ ๋ ฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ๋ค์ํ๊ณ ๋ง์ ์์ state๋ฅผ ๋ค๋ฃจ๊ฒ ๋๋ค. ํ๋ ์ด์์ ์ ๋ ฅ ๊ฐ์ด ๋ชจ๋ ์ ํจํ๊ฑฐ๋ ๋ชจ๋ ์ ํจํ์ง ์์ ์ ์๋ค. ๋๋ ์๋ฒ๋ก request๋ฅผ ๋ณด๋ธ ํ์ ํน์ ๊ฐ์ด ์ฌ์ฉ ๊ฐ๋ฅํ์ง ํ์ธํ๋ ๋น๋๊ธฐ ์
ํ๋ก๊ทธ๋๋จธ์ค ํ์์๋ ๊ธฐ๋ฅ ๊ฐ์ ์์ ์ ์ํ ์ค์ ๋๋ค. ๊ฐ ๊ธฐ๋ฅ์ ์ง๋๊ฐ 100%์ผ ๋ ์๋น์ค์ ๋ฐ์ํ ์ ์์ต๋๋ค.๋, ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๋๋ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ค์ ์๋ ๊ธฐ๋ฅ์ด ์์ ์๋ ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๊ฐ๋ฐ๋ ์ ์๊ณ , ์ด๋ ๋ค์ ์๋ ๊ธฐ๋ฅ์ ์์ ์๋ ๊ธฐ๋ฅ์ด ๋ฐฐํฌ
๐ป ๋ชจ์๊ณ ์ฌ > ์ํฌ์๋ ์ํ์ ํฌ๊ธฐํ ์ฌ๋์ ์ค๋ง์ ๋๋ค. ์ํฌ์ ์ผ์ธ๋ฐฉ์ ๋ชจ์๊ณ ์ฌ์ ์ํ ๋ฌธ์ ๋ฅผ ์ ๋ถ ์ฐ์ผ๋ ค ํฉ๋๋ค. ์ํฌ์๋ 1๋ฒ ๋ฌธ์ ๋ถํฐ ๋ง์ง๋ง ๋ฌธ์ ๊น์ง ๋ค์๊ณผ ๊ฐ์ด ์ฐ์ต๋๋ค. > 1๋ฒ ์ํฌ์๊ฐ ์ฐ๋ ๋ฐฉ์: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5,
๋ค์ ๊ท์น์ ์งํค๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๊ณ ์ ์ํฉ๋๋ค.(), \[], {} ๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.๋ง์ฝ A๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, (A), A, {A} ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด, \[] ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, (\[])
"๋ช ์์ ์ ๋น"์ด๋ผ๋ TV ํ๋ก๊ทธ๋จ์์๋ ๋งค์ผ 1๋ช ์ ๊ฐ์๊ฐ ๋ ธ๋๋ฅผ ๋ถ๋ฅด๊ณ , ์์ฒญ์๋ค์ ๋ฌธ์ ํฌํ์๋ก ๊ฐ์์๊ฒ ์ ์๋ฅผ ๋ถ์ฌํฉ๋๋ค. ๋งค์ผ ์ถ์ฐํ ๊ฐ์์ ์ ์๊ฐ ์ง๊ธ๊น์ง ์ถ์ฐ ๊ฐ์๋ค์ ์ ์ ์ค ์์ k๋ฒ์งธ ์ด๋ด์ด๋ฉด ํด๋น ๊ฐ์์ ์ ์๋ฅผ ๋ช ์์ ์ ๋น์ด๋ผ๋ ๋ชฉ๋ก์ ์ฌ๋ ค ๊ธฐ๋ ํฉ๋
Custom Hooks ๊ฒฐ๊ตญ์ ํจ์์ด๋ค. ํจ์์ธ๋ฐ, ์์์ ์ํ ์ค์ ์ ํ ์ ์๋ ๋ก์ง์ ํฌํจํ ํจ์์ด๋ค. ๋ํ ์ผ๋ฐํจ์์ ๋ค๋ฅด๊ฒ ๋ด๋ถ์์ ๋ฆฌ์กํธ ๋ด์ฅ Hook์ด๋ ๋ค๋ฅธ custom hook์ ์ฌ์ฉํ ์ ์๋ค. ์ซ์๋ฅผ 1์ฉ ๋ํ๋ฉด์ ์ธ๋ ์ปดํฌ๋ํธ๊ฐ ์๊ณ , ์ซ์๋ฅผ 1
๐ ๋ฆฌ์กํธ์ ๋ฐฑ์๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐํ๊ธฐ? ๋ฆฌ์กํธ ์ฑ๊ณผ ์ด๋ ํ ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์์ ๋ ์ด ๋์ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ์์ผ์๋ ์ ๋ ์๋๋ค! ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ์ฆ ์ ๋ณด๊ฐ ๋ ธ์ถ๋ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด์๋ ๋ฐฑ์ค๋ ์ฑ์ด
์ด์ ๊น์ง ํจ์ํ ์ปดํฌ๋ํธ์ ๋ํด ๋ฐฐ์ ๋ค๋ฉด, class๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ ์ ์์์ ๋ํด ์์๋ณด์. ์์ฆ ๊ฑฐ์ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์๋ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ง๋ง, ๊ณต๋ถํ๋ฉด์ ์ข ์ข ๋ง์ฃผ์น ์ผ์ด ์์ํ ๋ ๊ฐ๋จํ๊ฒ๋ง ์ ๋ฆฌํด๋๋ ค ํ๋ค.๋ฆฌ์กํธ 16.8๋ฒ์ ์ด์ ๊น์ง๋ ํจ์ํ
๋ฆฌ์กํธ๋ state๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๊ด๋ จ๋ ๋ชจ๋ component๊ฐ rerendering๋๋ ํน์ง์ ๊ฐ์ง๋ค. ์ด๋ ๋ง์ฝ ๊ฐ์ฅ ์์ component์์ state๋ฅผ ๋ณ๊ฒฝํ์์ ๊ฒฝ์ฐ, ํด๋น component์ ์์ component๋ค๋ ๋ชจ๋ ์ฌ์คํ๋๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ด๋ฌ
๐ Effect >UI์ ์ง์ ์ ์ธ ๊ด๋ จ์ด ์๋ ๊ฒ์ side effect๋ผ๊ณ ๋ถ๋ฅธ๋ค. side effect๋ค์ http request ๋ณด๋ด๊ธฐ, ๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํฐ ์ ์ฅํ๊ธฐ ๋ฑ ํ๋ฉด์ UI๋ฅผ renderingํ๋ ๊ธฐ๋ฅ ์ธ์ ๊ฒ๋ค์ ๋ด๋นํ๋ค. ์ฆ ๋ฐฑ์๋์์ ํต์ ์์ ์ค์
JSX๋ returnํ ๋ ํ ๊ฐ์ root๋ฅผ ๊ฐ์ง๊ณ return ๋์ด์ผ ํ๋ ๋ฌธ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค. ์ฆ ์ค์ฒฉ๋ component๋ฅผ ๊ทธ๋ฅ return ํ๊ฒ ๋๋ฉด, Adjacent JSX elements must be wrapped in an enclosing tag. D