๋ฆฌ์กํธ๋ฅผ ๊ธฐ์ ์ผ๋ก ์ฌ ํฌ์คํ ์ ํจ์ผ๋ก์จ ๋ด๊ฐ ๊ฐ์ฅ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ด ๊ธ,,,
์ปดํฌ๋ํธ๋ UI๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ๋ณ์ ์ธ ๋ทฐ ๋จ์์ด๋ค.
์๋ก header / footer / aside ๋ฑ ์ง์ํด์ ๋
ธ์ถ์ด ๋๋ ๋ ์ด์์ ๊ฐ์ ๋ถ๋ถ์ ์ฌ์ด ์๋ก ๋ค ์ ์๋ค. ์ด๋ฅผ ์ง์ํด์ reload๋ฅผ ํ๋ ๊ฒ์ด ์๋, component ๋จ์๋ณ๋ก ์ชผ๊ฐ์ ๋ถ๋ถ์ ๋ง๊ฒ ๊บผ๋ด ๊ฐ์ ธ์ฌ ์ ์๋ค.
(HTML๋ก ์๋ฅผ ๋ค์๋ฉด ์ด์ ๋น์ทํ ๋ ์ด์์๋ค์ ๋ชจ๋ ํ์ด์ง ๋ด์ ๋ด์ฅ์ด ๋์ด์ผ๋ง ํ๋ค.)
๐ ์์ฐ์ฑ๊ณผ ์ ์ง๋ณด์๊ฐ ์ฉ์ด
JSX(Javascript + xml)๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ํ ํ์ฅ ๊ตฌ๋ฌธ์ด๋ค.
HTML๋ก ๊ตฌ์ฑํ UI๋ฅผ ์ ์ดํ ๋, DOM์ ๋์ ์ผ๋ก ๋ณํ์ํค๊ธฐ ์ํด Javscript๋ก ์ง์ ์ ์ด๋ฅผ ํด์ผํ๋ค๋ฉด, ๋ฆฌ์กํธ์์ ์ ์ด๊ฐ ํ์ํ ํ์ผ์ ์ง๊ด์ ์ผ๋ก ๊ตฌ๋ถ์์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
๊ธฐ์กด ๋ ๋๋ง ๋ฐฉ์ [HTML -> JS]
๋ฆฌ์กํธ ๋ ๋๋ง๋ฐฉ์ [JS -> HTML]
๐ ๊ตฌ๋ถ์๋ ์ฌ์ฉ์ฑ์ผ๋ก ๋ณด๋ค ์ฌ์ด ์ ์ด
๋ํ ๊ธฐ์กด์๋ ๊ฐ์ ๋ฐ์์์ผํ๋ input ํ๊ทธ ๊ฐ์ ๊ฒฝ์ฐ onChange event handling์ js ํ์ผ์์ ํด์ผํ๋ค๋ฉด,
useState, useEffect ๋ฑ ํ
์ ์ฌ์ฉํ์ฌ ๐ ๋ณํ๋ ๊ฐ๋ค์ ๋ฐ๋ก๋ฐ๋ก ์ธํ
ํด์ฃผ๋ ํธ๋ฆฌํจ ๋ํ ์๋ค๊ณ ์๊ฐํ๋ค.
์ ์ ์ธํฐ๋์
์ ์ํด View์ ๋ณํ๊ฐ ๋ฐ์ํ์ฌ 10๊ฐ ๋ด์ง 20๊ฐ์ ๋
ธ๋๋ฅผ ์์ ํด์ฃผ์ด์ผ ํ๋ค๋ฉด, ๊ทธ์ ๋ฐ๋ฅด๋ ๋ ์ด์์ ์ฌ๊ณ์ฐ ๋ฐ ๋ฆฌ๋๋ฉ์ด ํ์ํ์ํ
๋ฐ
Virtual DOM์ ๊ทธ ๊ณผ์ ์ด ํ์์์ด ์ ์ฉ์ด ๋์ด ์ต์ข
์ ์ธ ๋ณํ๋ฅผ ์ค์ DOM์ ์ ๋ฌํด์ฃผ๊ธฐ ๋๋ฌธ์ ๐ ์ฐ์ฐ ๋น์ฉ์ ์ ๊ฒ ๋ง๋ค์ด ์ค๋ค.
// ๋ ๋๋ง ํ๋ ๊ณผ์ ๋งํฌ ์ฐธ๊ณ
Single Page Application์ ์ฝ์.
๋ง ๊ทธ๋๋ก, ํ์ด์ง๊ฐ 1๊ฐ์ธ ์ดํ๋ฆฌ์ผ์ด์
์ด๋ ๋ป์ด๋ค.
๋ถ๋ถ์ ์ผ๋ก ์ํ๋ ์์น์ ์ํ๋ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง ๋๋ค.
๐ฌ ๊ฐ์ธ์ ์ผ๋ก ๋ฆฌ์กํธ๋ ์ฌ์ฉํ๋ฉด ํ ์๋ก ์ฌ์ฉ์ฑ์ด ํธํ๊ธฐ๋ ํ์ง๋ง, ๊ทธ๋งํผ ๋ ์์์ผํ ๊ฒ ๋ง์ ํ๋ ์์ํฌ๋ผ๊ณ ์๊ฐ์ด ๋ ๋ค. (์ถ๊ฐ์ ์ผ๋ก ์ ์ ๋ด์ฉ์ด ์๋ค๋ฉด ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ ์์ )