์ ์ด ์ปดํฌ๋ํธ์ ๋น์ ์ด ์ปดํฌ๋ํธ๋ด๋ถ ๋ณ์ ์ญํ ์ ํ๋ State & ํ๋ผ๋ฏธํฐ ์ญํ ์ ํ๋ Props & React ๋
๋ฆฝ์ RefReact Hook ์ ํจ์ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ๊ณ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋์
ํ๋ค.๋ฐ๋ผ์ ํ๋์ ์ปดํฌ๋ํธ๋ฅผ ํ๋์ ํจ์๋ก ์๊ฐํ๋ค๋ฉด, State & Props & Ref ์ธ ๊ฐ์ง๋ฅผ ๋ชจ๋ ์ดํดํ๊ธฐ๊ฐ ํจ์ฌ ์ฝ๋ค. 1. State: ๋ด๋ถ ๋ณ์ (์ ์ด ์ปดํฌ๋ํธ)State๋ ์ปดํฌ๋ํธ์ ๋ด๋ถ ์ํ๋ฅผ ๋ํ๋ด๋ ๋ณ์๋ก, React์์ ์ง์ ๊ด๋ฆฌํ๋ ๋ณ์์ด๋ค.State ๋ณ๊ฒฝ ์ ๋ฆฌ๋ ๋๋ง ๋ฐ์: React๋ state๊ฐ ๋ณ๊ฒฝ๋ ๋ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ๋ค์ ๋ ๋๋งํ์ฌ UI๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ๋ค.๋ด๋ถ ๋ณ์์ ์๋ฏธ:State๋ ์ปดํฌ๋ํธ ๋ด๋ถ์์๋ง ๊ด๋ฆฌ๋๋ฉฐ, ๋ค๋ฅธ ์ปดํฌ๋ํธ์์๋ ์ง์ ์ ๊ทผํ ..
React ๊ฐ๋ฐ ํ๊ฒฝ ์ค์ 1. Vite๋ฅผ ํตํ React ์ฑ ์ค์ ๊ณผ๊ฑฐ์๋ CRA(Create-React-App)์ ์ฌ์ฉํด React์ฑ์ ์์ฑํ์ผ๋, ํ์ฌ๋ Deprecated ๋์๋ค. React ๊ณต์ ํํ์ด์ง์์ CRA ๋์ CNA(Create-Next-App)์ ์ถ์ฒํ์ง๋ง, ์์ง Next.js ์ค์ต๋จ๊ณ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ Vite๋ก React ์ฑ์ ์ค์ ํ ์์ ์ด๋ค. 1-1. Vite๋ก ํ๋ก์ ํธ๋ฅผ ์ค์ ํ๋ ๋ช
๋ น์ดnpm create vite@latest react-tutorial -- --template react 1-2. Node ๋ฒ์ ๊ด๋ฆฌ ๋ฐ nvm ์ค์น1. nvm ์ค์น ๋ช
๋ น์ดcurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh ..
"์ปดํฌ๋ํธ"๋ผ๊ณ ๋ถ๋ฅด๋ ๋์จํ๊ฒ ์ฐ๊ฒฐ๋ ์ ๋์ผ๋ก ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํฉ๋๋ค.const element = Hello, world!;"์์ ํฌํํ ํ๊ทธ ๋ฌธ๋ฒ์ ๋ฌธ์์ด๋, HTML๋ ์๋๋๋ค." React๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ง๋ง, ํ๋ ์์ํฌ์ ์ ์ฌํ๊ฒ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๊ทธ ์ค์์๋ JSX ๋ฌธ๋ฒ, ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ, Virtual DOM(VDOM), ๋ ๋ ์ฌ์ดํด์ด React์ ์ฃผ์ ํน์ง์ด๋ค. JSX ๋ฌธ๋ฒJSX๋ JavaScript XML ๋๋ JavaScript Syntax Extension์ผ๋ก ๋ถ๋ฆฐ๋ค. JSX๋ JavaScript์ XML(๋๋ HTML)์์๋ฅผ ๊ฒฐํฉํ ๋ฌธ๋ฒ์ผ๋ก, React์์ ์ปดํฌ๋ํธ๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก JavaScript ์ฝ๋ ๋ด์์ HTML ์์๋ฅผ ์์ฑํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋งํฌ์
๊ณผ..
์น ํ๋ก ํธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ, React์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณต์กํ ์ํ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ ๊ทธ ์์ฒด๋ก๋ ํ๋ ์์ํฌ๊ฐ ์๋ ์ธ์ด์ ๋ถ๊ณผํ๋ค. ์น ๊ฐ๋ฐ์ ๋ชฉ์ ์ ๋ฐ๋ผ ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๊ฐ ๋ฑ์ฅํ๊ฒ ๋์๊ณ , ์๋ก ์ต๊ณ ๋ผ๊ณ ์ฃผ์ฅํ๋ ๋ค์ํ ๊ธฐ์ ๋ค์ด ๋งค๋ฒ ์๋กญ๊ฒ ์ถํํ๊ณ ์๋ค.React.js๋ ์ด๋ฌํ ๋ฐฐ๊ฒฝ์์ ๋ฑ์ฅํ ์น ํ๋ก ํธ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ํนํ, React๋ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ ๋งค์ฐ ์ค์ํ ์์น๋ฅผ ์ฐจ์งํ๋ฉฐ, ์ฌ์ค์ Java์ฒ๋ผ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํ์ค์ฒ๋ผ ์ฌ์ฉ๋๊ณ ์๋ค. ์น ์ดํ๋ฆฌ์ผ์ด์
๊ตฌ์กฐ์์์ ์์ ์ด์ ์ ํฌ์คํ
ํ ๊ธ์ ์ฐธ๊ณ ํ์. (์์ ์์ฑ ๊ธ์ด๋ผ ๊ฐ๋
์ฑ์ด ๋ณ๋ก ์์ข์์ ์ด ๊ธ์์ ๋ค์ ์ ๋ฆฌ)https://1000sang-dev.tistory.com/13 ํ๋ก ํธ ์น ๊ฐ๋ฐ์ ํ์ ๊ฐ๋
: ์๋ฐ์คํฌ๋ฆฝ..
"ํ๋์ ์ด๋ฒคํธ๊ฐ ๋ค์์ DOM ๋ณ๊ฒฝ" ์น ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ Rerendering์น ํ์ด์ง์ ๋ ๋๋ง์ ์ฌ์ฉ์๊ฐ ๋ณด๋ ํ๋ฉด์ ๋ฐ๊พธ๋ ์์
์ด๋ค. ์ฌ์ฉ์๊ฐ ๋ฒํผ์ ๋๋ฅด๊ฑฐ๋ ํ์ด์ง๋ฅผ ์ด๋ํ ๋, ์น ํ์ด์ง์ ํ๋ฉด์ด ์ด๋ป๊ฒ ๋ณ๊ฒฝ๋ ๊น ? 1. Javascript๋ฅผ ํตํ HTML(DOM) ์ง์ ์กฐ์์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ๋ฉด HTML์ DOM์ ์ง์ ์กฐ์ํ์ฌ ํ์ด์ง์ ๋ค์ํ ์์๋ฅผ ์ ์ดํ ์ ์๋ค.์ด๋ฅผ ํตํด ํ๋ฉด์ ๋ค์ํ ๋ณํ๋ฅผ ์ค ์ ์๋ค.์๋ฐ์คํฌ๋ฆฝํธ๋ DOM์ ์กฐ์ํ์ฌ ํ๋ฉด์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๋ค. ํ๋ฉด์ ํน์ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๊ณ , ์ด๋ฒคํธ์ ๋ฐ์ํ์ฌ ํ์ด์ง์ ์์๋ค์ ์ง์ ์กฐ์ํ ์ ์๋ค. ํ์ง๋ง Javascript๋ฅผ ํตํด ์ง์ DOM์ ๋ณ๊ฒฝํ๋ฉด ์ฌ๋ฌ ๋จ์ ๋ค์ด ์๋ค.HTML(DOM) ์์ ํ๋ํ๋์ฉ ์ง์ ์กฐ์์ ๊ฐํด์ผํ๋ค..