๐ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ ์ฌ๋ฐฐ์ด๊ณผ ๋ฐฐ์ด์ ์ฐจ์ด๋ ๋ฌด์์ผ๊น์?
์ ์ฌ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ์์ ํ๊ณ ์ถ๋ค๋ฉด ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์ณ์ผํ ๊น์?
๋ฐฐ์ด :
ํ๋์ ๋ณ์์ ํ ๋นํด ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ํ์ ์ด๋คใ
์ ์ฌ ๋ฐฐ์ด :
๋ฐฐ์ด๊ณผ ์ ์ฌํ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
์ ์ฌ ๋ฐฐ์ด์ ํจ์์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ก ๋ฐฐ์ด์ ๋ฐํํ๊ณ ์ถ์ ๋ ๋๋, Array์์ ๊ธฐ๋ณธ์ผ๋ก ๋ดํฌ๋์ด์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์ถ์ง ์๊ฑฐ๋ Array์ ๋ดํฌ๋์ด์์ง ์์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
1. ์ซ์ ํํ์ indexing์ด ๊ฐ๋ฅํ ๊ฒ
2. length ์์ฑ์ ํฌํจํ ๊ฒ
์์ ๊ณผ์ :
1-1. ๊ฐ์ ํธ์ถ ํ์ฉ
1-2. Restํ๋ผ๋ฏธํฐ ํ์ฉ
1-3. Array.from ๋ฉ์๋ ํ์ฉ
๋ฑ์ ํ์ฉํ์ฌ ๋ฐฐ์ด๋ก ๋ณํ์์ผ ์ค ๋ค ์์๋ฅผ ์์ ํ๋ค.
๐ ๋ถ๋ชจ ์ปดํฌ๋ํธ A์ ์์ ์ปดํฌ๋ํธ B๊ฐ ์์ต๋๋ค. ์ปดํฌ๋ํธ A๋ state๋ก {name: "๋ฅดํ์ด"}๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ์์์ธ ์ปดํฌ๋ํธ B์๊ฒ name ๊ฐ์ ๋๊ฒจ์ฃผ์์ต๋๋ค. ์ปดํฌ๋ํธ B๋ ๋ฐ์์จ name์ ํ๋ฉด์ ๋ฟ๋ ค์ฃผ๊ณ ์์ต๋๋ค.
์ปดํฌ๋ํธ A์ state๊ฐ {name: "์ง๋์ฌ์ฐ๋ฅด์ค"}๋ก ๋ฐ๋์์ ๋, ์ด๋ค ๊ณผ์ ์ ๊ฑฐ์ณ ๋ฐ๋ ๊ฐ์ ํ๋ฉด์ ๋ณด์ฌ์ฃผ๋ ์ง ๋ผ์ดํ ์ฌ์ดํด ํ๋ฆ์ ๊ทธ๋ ค๋ณผ๊น์?
๋ผ์ดํ ์ฌ์ดํด : ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง์ ์ค๋นํ๋ ์๊ฐ๋ถํฐ, ํ์ด์ง์์ ์ฌ๋ผ์ง ๋๊น์ง ๊ณผ์
- ์ปดํฌ๋ํธ๋ ์์ฑ๋๊ณ -> ์์ (์ ๋ฐ์ดํธ)๋๊ณ ์ฌ๋ผ์ง๋ค
- ์์ฑ์ ์ฒ์์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฌ์ค๋ ๋จ๊ณ์ ๋๋ค
- ์์ (์ ๋ฐ์ดํธ) ๋๋ ๊ฒฝ์ฐ
1) props๊ฐ ๋ฐ๋ ๋
2) state๊ฐ ๋ฐ๋ ๋
3) ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํธ ๋์์ ๋ ( ๋ฆฌ๋ ๋๋ง ํ์ ๋ )
4) ๊ฐ์ ๋ก ์ ๋ฐ์ดํธ๋ฅผ ํ์ ๊ฒฝ์ฐ ( forceUpdate() )๋ฅผ ํตํด ๊ฐ์ ๋ก ์ปดํฌ๋ํธ๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์๋ค
-์ ๊ฑฐ๋ ํ์ด์ง๋ฅผ ์ด๋ํ๊ฑฐ๋, ์ฌ์ฉ์์ ํ๋ (์ญ์ ๋ฒํผ ํด๋ฆญ)์ผ๋ก ์ธํด ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์์
์ฌ๋ผ์ง๋ ๋จ๊ณ์ ๋๋ค)
----- ๋ผ์ดํ ์ฌ์ดํด ํ๋ฆ -----
- **Mounting**: ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ๋ํ๋จ
### Mounting
์ปดํฌ๋ํธ์ ์ธ์คํด์ค๊ฐ ์์ฑ๋์ด DOM ์์ ์ฝ์ ๋๋ ๋จ๊ณ์ ๋๋ค. Mounting์ Lifecyle์ด ์ข ๋ฃ๋ ๋๊น์ง ํ ๋ฒ๋ง ์ผ์ด๋ฉ๋๋ค. ์๋ ๋ฉ์๋๋ค์ด ์ด ๋จ๊ณ์์ ์์๋๋ก ํธ์ถ๋ฉ๋๋ค.
· **constructor**: ์ปดํฌ๋ํธ์ ์ธ์คํด์ค๋ฅผ ์๋ก ๋ง๋ค ๋๋ง๋ค ์์ฑ์ ๋ฉ์๋๊ฐ ํธ์ถ๋ฉ๋๋ค.
· static getDerivedStateFromProps
· **render**: ํ๋ฉด์ ํํ๋ JSX๋ฅผ ๋ฐํํ๊ณ ํ๋ฉด์ ๊ทธ๋ฆฝ๋๋ค.
· **componentDidMount**: ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์ ๋ชจ๋ ๊ทธ๋ ค์ง ์ดํ ํธ์ถ๋ฉ๋๋ค.
componentDidMount ๋ฉ์๋๋ ์ฒซ ๋ ๋๋ง ์ดํ ์คํ๋ฉ๋๋ค. ์๋ํฌ์ธํธ์์ ํด๋ผ์ด์ธํธ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์์ผ ํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด, API ํธ์ถ์ ํ๊ธฐ ์ข์ ์์น์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์ฌ ๋ setState ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
- **Updating**: ์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํธ๋จ
### Updating
props ๋๋ state๊ฐ ๋ณ๊ฒฝ๋์ด ์ปดํฌ๋ํธ๊ฐ ์ ๋ฐ์ดํธ๋๋ ๋จ๊ณ์ ๋๋ค. ์๋ ๋ฉ์๋๋ค์ด ์ด ๋จ๊ณ์์ ์์๋๋ก ํธ์ถ๋ฉ๋๋ค.
· static getDerivedStateFromProps
· shouldComponentUpdate
· **render**: ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๋์ผ๋ก ํธ์ถ๋ฉ๋๋ค. ํ๋ฉด์ ๋ค์ ๊ทธ๋ฆฝ๋๋ค.
· getSnapshotBeforeUpdate
· **componentDidUpdate**: ํ๋ฉด์ด ๋ค์ ๊ทธ๋ ค์ง ์ดํ ํธ์ถ๋ฉ๋๋ค.
- **Unmounting**: ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง
### Unmounting
์ปดํฌ๋ํธ๊ฐ DOM ์์์ ์ ๊ฑฐ๋๋ ๋จ๊ณ์ ๋๋ค.
·**componentWillUnmount**: ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์์ ์ ๊ฑฐ๋๊ธฐ ์ ์ ํธ์ถ๋ฉ๋๋ค.
### ํ๋ฆ ์ค๋ช
์ปดํฌ๋ํธ A์์ “๋ฅดํ์ด”๋ผ๋ state๋ฅผ “์ง๋์ฌ์ฐ๋ฅด์ค” ๋ณ๊ฒฝ ->
๋ถ๋ชจ ์ปดํฌ๋ํธ์์ Updating์ด ๋ฐ์ ->
shouldComponentUpdate ๊ฐ ์คํ ->
๋ฐ๋ props๋ฅผ ์ด์ฉํ์ฌ ๋ถ๋ชจ ์ปดํฌ๋ํธ์ ๋ ๋๋ง ->
๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ๋ props๋ฅผ ์ด์ด๋ฐ์ ์ปดํฌ๋ํธ B์ ๋ ๋๋ง์ด ์คํ๋จ
๐ ์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ๋ฌด์์ผ๊น์?
์๋ฐฉํฅ ๋ฐ์ธ๋ฉ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฆฌ๋ ๋๋ง์ด ์ด๋ป๊ฒ ์ด๋ฃจ์ด์ง ์ง ๊ทธ๋ ค๋ณด์ธ์.
(๋ถ๋ชจ ์ปดํฌ๋ํธ A์ ์์ ์ปดํฌ๋ํธ B๊ฐ ์์์ ๊ฐ์ ํ๊ณ ๊ทธ๋ ค๋ด ์๋ค.)
๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด๋?
๋ ๋ฐ์ดํฐ ํน์ ์ ๋ณด์ ์์ค๋ฅผ ์ผ์น์ํค๋ ๊ธฐ๋ฒ์ผ๋ก, ํ๋ฉด์ ๋ณด์ด๋ ๋ฐ์ดํฐ์ ๋ธ๋ผ์ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ฐ์ดํฐ(์ฌ๋ฌ๊ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด)๋ฅผ ์ผ์น์ํค๋ ๊ฒ์ ๋งํ๋ค.
์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
์ฅ์ : ์ฝ๋์ ์ฌ์ฉ๋ฉด์์ ์ฝ๋๋์ ํฌ๊ฒ ์ค์ฌ์ค
๋จ์ : ๋ณํ์ ๋ฐ๋ผ DOM ๊ฐ์ฒด ์ ์ฒด๋ฅผ ๋ ๋๋งํด์ฃผ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฏ๋ก, ์ฑ๋ฅ์ด ๊ฐ์๋๋ ๊ฒฝ์ฐ๊ฐ ์์
์ปจํธ๋กค๋ฌ์์ model์ด ๋ณ๊ฒฝ๋จ -> view๋ณ๊ฒฝ๋จ
view์์ scope model์ด ๋ณ๊ฒฝ๋จ -> ์ปจํธ๋กค๋ฌ์์ model์ด ๋ณ๊ฒฝ๋จ
์ด๋ ๊ฒ ์ปจํธ๋กค๋ฌ์ ๋ทฐ ์์ชฝ์ ๋ฐ์ดํฐ ์ผ์น๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ ๊ฒ์ด ์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ด๋ค. ๋ฐ์ดํฐ์ ๋ณํ๋ฅผ ๊ฐ์งํด ํ ํ๋ฆฟ๊ณผ ๊ฒฐํฉํด ํ๋ฉด์ ๊ฐฑ์ , ํ๋ฉด์ ์ ๋ ฅ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ํ๋ ๊ฒ์ด๋ค. (HTML -> JS, JS -> HTML ์์ชฝ ๋ชจ๋ ๊ฐ๋ฅ)
์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ ํ๋ ์์ํฌ์์ ๊ฐ์งํ๊ณ ์๋ค๊ฐ, ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ ์์ ์ DOM ๊ฐ์ฒด์ ๋ ๋๋ง์ ํด์ฃผ๊ฑฐ๋ ํ์ด์ง ๋ด์์ ๋ชจ๋ธ์ ๋ณ๊ฒฝ์ ๊ฐ์งํด JS ์คํ๋ถ์์ ๋ณ๊ฒฝํ๋ค. ์ ๋ ฅ๋ ๊ฐ์ด๋ ๋ณ๊ฒฝ๋ ๊ฐ์ ๋ฐ๋ผ ๋ด์ฉ์ด ๋ฐ๋ก ๋ฐ๋๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ์ฒดํฌํด์ฃผ์ง ์์๋ ๋๋ค.
์๋ฐฉํฅ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์ก๋๊ฐ ์ฆ๊ฐํ๋ฉด ์ฆ๊ฐํ ์๋ก ๋น์ ๋ฐํ๋ค. ์๋ง์ ์ฝ๋์ ์์ ์ค์ฌ์ค ๋ฟ๋ง ์๋๋ผ ์ ์ง๋ณด์๋ ์ฝ๋๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋งค์ฐ ์ฝ๊ฒ ํด์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
๐ event listener๋ ๋ฑ๋ก๋๋ฉด ๋ฐ๋์ ํด์ ๋์ด์ผ ํฉ๋๋ค.
ํด๋์คํ ์ปดํฌ๋ํธ์์๋ ์ปดํฌ๋ํธ๊ฐ ํ๋ฉด์์ ์ฌ๋ผ์ง ๋(unmount ๋ ๋) event listener๋ฅผ ํด์ ํฉ๋๋ค. (componentWillUnmount์์์!)
๊ทธ๋ผ ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๋ ํจ์ํ ์ปดํฌ๋ํธ์์๋ event listener๋ฅผ ํด์ ํ ๋ ์ด๋ป๊ฒ ํด์ผํ ๊น์?
useEffect
ํจ์ํ ์ปดํฌ๋ํธ์์๋ ๊ฐ๊ฐ์ ๋ผ์ดํ์ฌ์ดํด ๋ฉ์๋๋ฅผ useEffect ํ๋๋ก ํต์ผ์ํฌ ์ ์๋ค. ๋์ dependency๋ฅผ ์ ์ธํ์ฌ ์์ ์ ๊ตฌ๋ถํ๋ค.
useEffect(() => {
console.log('hi')
}, [/* dependency ์ ์ธํ๋ ๊ณณ */])
๋น ๋ฐฐ์ด์ ์ ์ธํ๋ฉด ์ต์ด ๋ก๋์์๋ง ๋ ๋๋ง์ด ๋๋ค.
์ด๋ฒคํธ ํด์ ํ๊ธฐ
์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๊ณ ๋ ๋ค ์ฑ๋ฅ ์ ํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ปดํฌ๋ํธ๊ฐ ์ธ๋ง์ดํธ ๋ ๋ ๊ผญ ์ด๋ฒคํธ ๋ฑ๋ก์ ํด์ ํด์ฃผ์ดํ ํ๋ค. ํจ์ํ ํด๋์ค์์๋ useEffect์ ๋ด๋ถ ํจ์์ return๊ฐ์ผ๋ก removeEventListener๋ฅผ ํตํด ํด์ ํด์ฃผ๋ฉด ๋๋ค.
useEffect(() => {
document.addEventListener();
return () => {
document.removeEventListener();
}
}, [])
๐ ๋ฆฌ์กํธ์์๋ DOM ์์์ ์ ๊ทผํ๊ธฐ ์ํด ์ฃผ๋ก ref๋ฅผ ์๋๋ค.
domcument.getElementsByClassName ๋ฑ์ ์ฐ๋ ๊ฒ ์๋๋ผ ref๋ฅผ ์ฐ๋ ์ด์ ๋ ๋ฌด์์ผ๊น์?
ref๋ฅผ ์ฌ์ฉํ๋ ์ด์ ?
id๋ ์ ์ผํด์ผ ํ์ง๋ง ์ปดํฌ๋ํธ ์ฌ์ฌ์ฉ์ ํ๋ค๋ฉด ์ค๋ณต๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
ref๋ ์ ์ญ์ ์ผ๋ก ์๋ํ์ง ์๊ณ ์ปดํฌ๋ํธ ๋ด๋ถ์์๋ง ์๋ํ๋ค.
์ด๋จ ๋ ์ฌ์ฉํด์ผ ํ๋๊ฐ?
DOM์ ๊ผญ ์ง์ ์ ์ผ๋ก ๊ฑด๋๋ ค์ผ ํ ๋ ์ฌ์ฉํ๋ค.
ํน์ input์ ํฌ์ปค์ค ์ฃผ๊ธฐ
์คํฌ๋กค ๋ฐ์ค ์กฐ์ํ๊ธฐ
Canvas ์์์ ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ ๋ฑ
์ ์ธ์ ์ผ๋ก ํด๊ฒฐ๋ ์ ์๋ ๋ฌธ์ ์์๋ ref ์ฌ์ฉ์ ์ง์ํด์ผํ๋ค.
ref์ ์ฌ์ฉ์ ์ต๋ํ ์ค์ฌ์ผ ํ๋ค๊ณ ๋ช ์๋์ด์๋ค.
๐ SPA ๋ฐฉ์๊ณผ MPA ๋ฐฉ์์ ๋ฌด์์ธ๊ฐ์?
SPA vs MPA
- SPA(Single Page Application)๋ ํ ๊ฐ(Single)์ Page๋ก ๊ตฌ์ฑ๋ Application์ด๋ค.
MPA(Multiple Page Application)๋ ์ฌ๋ฌ ๊ฐ(Single)์ Page๋ก ๊ตฌ์ฑ๋ Application์ด๋ค.
- MPA๋ ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์ ์ ๋ฆฌ์์ค๊ฐ ๋ค์ด๋ก๋๋๋ค. ๋งค๋ฒ ์ ์ฒด ํ์ด์ง๊ฐ ๋ค์ ๋ ๋๋ง ๋๋ค.
๋ฐ๋ฉด SPA๋ ์น ์ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๋ชจ๋ ์ ์ ๋ฆฌ์์ค๋ฅผ ์ต์ด ํ ๋ฒ์ ๋ค์ด๋ก๋ํ๋ค.
๊ทธ ์ดํ ์๋ก์ด ํ์ด์ง ์์ฒญ์ด ์์ ๋, ํ์ด์ง ๊ฐฑ์ ์ ํ์ํ ๋ฐ์ดํฐ๋ง ์ ๋ฌ ๋ฐ์์ ํ์ด์ง๋ฅผ ๊ฐฑ์ ํ๋ค.
- ๊ทธ๋์ SPA๋ฅผ CSR(Client Side Rendering) ๋ฐฉ์์ผ๋ก ๋ ๋๋งํ๋ค๊ณ ๋งํ๋ค.
๊ทธ๋์ MPA๋ฅผ SSR(Server Side Rendering) ๋ฐฉ์์ผ๋ก ๋ ๋๋งํ๋ค๊ณ ๋งํ๋ค.
MPA(Multiple Page Application)
- ์ฌ๋ฌ ๊ฐ(Single)์ Page๋ก ๊ตฌ์ฑ๋ Application์ด๋ค.
- MPA๋ SSR(Server Side Application) ๋ฐฉ์์ผ๋ก ๋ ๋๋งํ๋ค.
์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์๋ฒ์์ ๋ ๋๋ง๋ ์ ์ ๋ฆฌ์์ค(HTML, CSS, JavaScript)๊ฐ ๋ค์ด๋ก๋๋๋ค.
ํ์ด์ง ์ด๋ํ๊ฑฐ๋ ์๋ก๊ณ ์นจํ๋ฉด ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ ๋ ๋๋งํ๋ค.
๐ MPA ์ฅ์
1. SEO ๊ด์ ์์ ์ ๋ฆฌํ๋ค.
- MPA๋ ์์ฑ๋ ํํ์ HTML ํ์ผ์ ์๋ฒ๋ก๋ถํฐ ์ ๋ฌ๋ฐ๋๋ค.
๋ฐ๋ผ์ ๊ฒ์์์ง์ด ํ์ด์ง๋ฅผ ํฌ๋กค๋งํ๊ธฐ์ ์ ํฉํ๋ค.
2. ์ฒซ ๋ก๋ฉ ๋งค์ฐ ์งง๋ค.
- ์๋ฒ์์ ์ด๋ฏธ ๋ ๋๋งํด ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ทธ๋ฌ๋ ํด๋ผ์ด์ธํธ๊ฐ JS ํ์ผ์ ๋ชจ๋ ๋ค์ด๋ก๋ํ๊ณ ์ ์ฉํ๊ธฐ์ ๊น์ง๋ ๊ฐ๊ฐ์ ๊ธฐ๋ฅ์ ๋์ํ์ง์๋๋ค.
๐ MPA ๋จ์
1. ์๋ก์ด ํ์ด์ง๋ฅผ ์ด๋ํ๋ฉด ‘๊น๋นก’์ธ๋ค. (UX)
- ๋งค ํ์ด์ง ์์ฒญ๋ง๋ค ๋ฆฌ๋ก๋ฉ(์๋ก๊ณ ์นจ) ๋ฐ์.
์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋๋ง๋ค ์ ์ฒด ํ์ด์ง๋ฅผ ๋ค์ ๋ ๋๋งํ๊ธฐ ๋๋ฌธ์ด๋ค.
2. ํ์ด์ง ์ด๋ ์ ๋ถํ์ํ ํ ํ๋ฆฟ๋ ์ค๋ณตํด์ ๋ก๋ฉ (์ฑ๋ฅ)
3. ์๋ฒ ๋ ๋๋ง์ ๋ฐ๋ฅธ ๋ถํ
4. ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ ์ ์ถ๊ฐ์ ์ธ ๋ฐฑ์๋ ์์ ํ์ (์์ฐ์ฑ)๊ฐ๋ฐ์ด ๋ณต์กํด์ง ์ ์๋ค.
'์๊ฐ > react' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React์ typescript์ next.js SSR (0) | 2023.06.16 |
---|---|
react-query useQueryErrorResetBoundary ์ฌ์ฉ ์์ (0) | 2023.06.13 |
socket io ์ค์๊ฐ ์๋ฆผ (0) | 2023.06.12 |
react-query ๊ธฐ๋ฅ ๋ชจ์ (0) | 2023.06.08 |
๋ฐ๋๋ผ js vs react (JSX, Babel) && react hooks (0) | 2022.12.15 |