SPA Single Page Application ๋ฆฌ์กํธ์ ๋์ ์ผ๋ก CSR(Client Side Rendering) CSR ๋จ์ ์ฒซ ํ๋ฉด์ ๋๋๋งํ๋ ์๊ฐ์ด ๋ง์ด ์์๋จ html ๋ด body๊ฐ ๋น์ด์ ธ ์๊ธฐ ๋๋ฌธ์ seo์ ๋ถ๋ฆฌ ๋จ์ ์ ๋ณด๊ฐํ๊ธฐ ์ํด ๋์จ SSR(Se
์คํ ์ปจํ ์คํธ ์คํ & ํ ํจ์ ์ ์ธ๋ฌธ & ํจ์ ํํ์ ์ค์ฝํ ์ฒด์ธ
var : ์ ์ธํ๊ธฐ ์ ์ ๊ฐ์ ํ ๋นํ ์ ์๊ณ , ๊ฐ์ ํ ๋นํ๊ธฐ ์ ์ ์ถ๋ ฅ๋ ๊ฐ๋ฅํจ ๐ * var ํธ์ด์คํ * ๐ฃ var๋ฅผ ์ฐ๋ฉด ์๋๋ ์ด์ 1. var hoisting : ์ด๋์์ ์ ์ธํ๋์ง ์๊ด์์ด ํญ์ ์ ์ธ์ ์ ์ผ ์๋ก ๋์ด์ฌ๋ ค์ฃผ๋ ๊ฒ 2. has no b
โ๏ธ ์ปดํฌ๋ํธ ๊ตฌ์กฐ ๐ App.js / TodoTemplate.js ์ ์ฒด์ ์ผ๋ก TodoTemplate์ปดํฌ๋ํธ๊ฐ input ์ฐฝ๊ณผ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ธ๊ณ ์๋ ๊ตฌ์กฐ์ด๋ค. ๊ทธ๋ฆฌ๊ณ TodoTemplate.js์์๋ ์ด๋ฅผ {children}์ผ๋ก ๋ฐ์์ค๊ณ
๐ useEffect ๋๋๋ง์ด ๋ ๋๋ง๋ค ์คํ๋๋ ํจ์. ์ฒ์ ๋๋๋ง๋ ๋ + setState๋ฅผ ํตํด ์ ๋ฐ์ดํธ๊ฐ ๋ ๋๋ง๋ค ์คํ๋๋ค. <img src="https://images.velog.io/images/yoojin-kwon/post/675d59e5-d439-4
๋ณ์ : ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ฐ์ดํฐ๊ฐ ๋ด๊ธธ ์ ์๋ ๊ณต๊ฐ์๋ณ์ : ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ด๋ฆ, ๋ณ์๋ช ๊ธฐ๋ณธํ ๋ฐ์ดํฐ : ๋ณ์ ์ ์ธ ์, ๋ฉ๋ชจ๋ฆฌ ๋น ๊ณต๊ฐ์ ์๋ณ์ ์ ์ฅ, ์ฐ์ ๊ทธ ๊ณต๊ฐ์ ๊ฐ์ undefined๋ก ํ ๋น. ๋ฐ์ดํฐ ํ ๋น ์, ๋ณ๋์ ๊ณต๊ฐ์ ๋ฐ์ดํฐ ์ ์ฅ,
input์ ์ ๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ณ , ๋๋ธ ํด๋ฆญํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ ํ๋ค. 1. state ์ค์ map ํจ์๋ฅผ ํ์ฉํ์ฌ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ key ์ญํ ์ ํ id๋ ๊ฐ์ฒด์ ๋ด์์ค๋ค. ๋ฏธ๋ฆฌ ์ค์ ํ ๋ฐ์ดํฐ ์ธ ์ถ๊ฐ๋ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ ๋๋ฌธ์
๋ชจ๋ฌ ์ฐฝ์ ์ฌ์ฉ์์๊ฒ ํน์ ๋ด์ฉ์ ๊ฐ์กฐํ์ฌ ์ ๋ฌํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ค. ๋ชจ๋ฌ ์ฐฝ์ ๋ํ ์ฃผ๋ชฉ๋๋ฅผ ๋์ด๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ๊ฒฝ์ ์ด๋์ด ์์์ผ๋ก ๋์ด ๋๋น๋ฅผ ์ค๋ค. ๊ทธ๋ฐ๋ฐ ์ ์ด๋ฏธ์ง์ ๊ฐ์ด ๋ค๋ฅธ ์ปจํ ์ธ ๋ค์ด ๋ชจ๋ฌ ์ฐฝ๋ณด๋ค ๋์ z-index๋ฅผ ๊ฐ์ง๋ค๋ฉด? ์ข์ ๋ชจ๋ฌ ์ฐฝ์ด๋ผ๊ณ
๐ Recoil? "A state management library for React" ๐ RecoilRoot Components that use recoil state need RecoilRoot to appear somewhere in the parent tr
๋ฌธ์ ํด๊ฒฐ https://youngbinkwon.tistory.com/125
์์ ํ๋ ๋ธ๋์น์์ git add . ๐ git commit -m "์ปค๋ฐ๋ฉ์์ง"git checkout master ๐ git pull origin mastergit checkout branch ๐ git rebase -i master์ถฉ๋ ํด๊ฒฐ (package-lo
๐ Hook useState const [state, setState ] = useState(initialState); setState : state๋ฅผ ์ ๋ฐ์ดํธํ ๋ ์ฌ์ฉํ๋ ํจ์ initialState : ์ต์ด ๋ ๋๋ง ์ ๋ฐํ๋๋ state ๊ฐ๊ณผ ๊ฐ๋ค. > E
git์ ํ๋ก์ ํธ ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๋ ์์คํ
javascript repl.it 17 - ๋ฐฐ์ด ์กฐ์ํ๊ธฐ fail์ด์๋ ์ด์ for ๋ฌธ์ syntax์ ๋ง์ง ์์์ ![](https://images.velog.io/images/yoojin-kwon/post/75a58ac7-c737-41b7-8f4e-fd5d760
๊ฐ๋จํ ์๊ฐ ํ๊ณ ๊ธฐ์ตํ๊ณ ์ถ์ ์ฝ๋ ํ์ด์ง๋ค์ด์ (query string) ๋์ ๋ผ์ฐํ ๋ฒํผ ํด๋ฆญ ์ด๋ฒคํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(slick/ countdown) ์ปดํฌ๋ํธ ์ฌํ์ฉ >> ๊ฐ์ ํ ์
๋ง์ผ์ปฌ๋ฆฌ ๋ฉ์ธ ํ์ด์ง์์ MD ์ถ์ฒ์ ์นดํ ๊ณ ๋ฆฌ ๋ฒํผ์ ํด๋ฆญํ ๋๋ง๋ค ํด๋น ์นดํ ๊ณ ๋ฆฌ ๋ด ์ถ์ฒ ์ ํ์ด ๋ณด์ฌ์ง๋ค. ์ฌ๊ธฐ์์ ๊ณ ๋ฏผ์ด ์์๋์๋๋ฐ... ์ฐ์ ๋์ผํ ํ์ด์ง์์ ๊ตฌํ๋์ด URL ๋ณํ๋ ์๊ณ , ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋์ ๋ผ์ฐํ ์ ์ ์ฉํ๋ ๊ฒ์ ์๋๋ผ๊ณ ํ๋จํ๋ค. ์ฌ๊ธฐ์
the three key features of recursionif(something bad happened){ STOP };์ฌ๊ท์ ์์ ์ฅ์น๋ก์ ์ํ์ง ์๋ ๊ฐ์ด ๋ค์ด์์ ๋ ์ฌ๊ท๊ฐ ๊ณ์ํด์ ๋์ํ๋ ๊ฒ์ ๋ฐฉ์ง(๊ธด๊ธ ๋ธ๋ ์ดํฌ๋ผ๊ณ ์๊ฐํ์!)// if(n<0) re
ํ๋์ ์ปดํฌ๋ํธ์์๋ ์ฌ๋ฌ import๊ฐ ์๊ธฐ ๋๋ฌธ์, ์์๋ฅผ ์ ์งํจ๋ค๋ฉด ๊ฐ๋ ์ฑ์ด ์ข์์ง ์ ์๋ค๐ฉโ๐ป5\. css ํ์ผ(scss ํ์ผ)
for..of vs. for..in ํ์ฌ ์์์ "๊ฐ"์ ์ป๊ณ ์ถ๋ค๋ฉด for..ofํ์ฌ ์์์ "์ธ๋ฑ์ค"๋ฅผ ์ป๊ณ ์ถ๋ค๋ฉด for..infilter ๋ฉ์๋let vs. const์ฒ์์๋ countzero๋ฅผ const๋ก ์ ์ธํด์ฃผ์๋ค. ๊ทผ๋ฐ for ๋ฌธ ์์์ countzero