์ฝ ํ๋ฌ ๊ฐ์ ํ๋ก์ ํธ๊ฐ ๋์ด ๋ฌ๋ค.์๋๋ ์ผ์ฃผ์ผ ๋จ์๋ก ๊ธฐ๋ถ์ ์ด๋ค์ง ์ด๋ ๋ถ๋ถ์์ ๋งํ๋์ง ์ ๊ณ ์ถ์๋๋ฐ ์๊ฐ๋ณด๋ค ํ๋ก์ ํธ๊ฐ ๋นก์ธ์ ์ปดํจํฐ ์์ ์์์ ๋ด ์๊ฐ์ ์ ๋ฆฌํ๊ธฐ์ ์๊ฐ์ด ๋ถ์กฑํ๋ค.๋ฆฌ์กํธ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์ฐ๋ฆฌ ํ์ ์ ํ๋ธ API๋ฅผ ์ฌ์ฉํด์ ์์ ์ ์ถ์ฒํ
context๋ props๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋๋ก ํด์ค๋๋ค. props๋ฅผ ์ฌ์ฉํ์ง ์๊ณ n๋ฒ์งธ ์์์๊ฒ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋ด์ค๋๋ค. n-1๊ฐ์ ์์์ ํต๊ณผํ์ฌ n๋ฒ์งธ ์์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ์ง ์์๋ ๋ถ๋ชจ์์ ๋ฐ๋ก n๋ฒ์งธ ์์์๊ฒ ๊ฐ์ ์ ๋ฌํ ์ ์๊ฒ ๋ฉ๋๋ค
false๋ checkRender๋ผ๋ ์ํ ๋ณ์์ ์ด๊ธฐ๊ฐ์ ๋๋ค. ์ด ์ํ ๋ณ์๋ useState ํ ์ ์ฌ์ฉํ์ฌ ์ ์ธ๋์์ต๋๋ค. useState ํ ์ ๋ ๊ฐ์ ์์๋ฅผ ๋ฐํํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์์๋ ํ์ฌ ์ํ ๊ฐ์ ๋ํ๋ด๋ ๋ณ์์ด๊ณ , ๋ ๋ฒ์งธ ์์๋ ์ํ ๊ฐ์ ๋ณ๊ฒฝํ๋ ํจ์
useEffect๋ useState ๋ณด๋๋ฐ ์๋ก ํท๊ฐ๋ฆผuseEffect์ useState๋ React์์ ์ํ ๊ด๋ฆฌ์ ๋ถ์ ํจ๊ณผ(side effect) ์ฒ๋ฆฌ๋ฅผ ์ํด ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ์ค์ํ Hook์ ๋๋ค. ์ด ๋ Hook์ ๊ฐ๊ฐ ๋ค๋ฅธ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ ๋ค์๊ณผ ๊ฐ์ด
useEffect(()=>{ // state๊ฐ ๋ณ๊ฒฝ๋์ด ๋ ๋๋ง ๋ ๋ ์คํํ๋ ๋ถ๋ถ! // ๊ณต๋ถํ๋ ค๊ณ ์ฑ ํด๋ ํ์ด๋ฐ! return()=>{ // ๋ค์ ๋ ๋๋ง์ ํ๊ธฐ ์ด์ ์ ์ปดํฌ๋ํธ๋ฅผ ์ง์ฐ๊ณ ๋ค์ ๊ทธ๋ฆฌ๊ฒ ์ฃ ? // ์ด ๊ณผ์ ์์ ์ง์ฐ๊ธฐ ์ ์ ์คํ๋๋ ๋ถ๋ถ์ ๋๋ค! clean
chat GPTํํ ๋ฌผ์ด๋ดค๋๋ฐ ๋ง๋๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์๋๊ฐ์๋ณด์ด๋๋ฐ?!?!?JSX์ ์ผ๋ฐ์ ์ธ JavaScript (JS) ์ฌ์ด์๋ ์ค์ํ ์ฐจ์ด๊ฐ ์์ต๋๋ค. JSX๋ React์ ํจ๊ป ์ฃผ๋ก ์ฌ์ฉ๋๋ ํ์ฅ๋ ๋ฌธ๋ฒ์ผ๋ก, React ์ปดํฌ๋ํธ์์ UI๋ฅผ ์ ์ธํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.๋ฌธ๋ฒ ์ฐจ
function Detail(){}const Detail = () => { ... } function Detail(){}์ const Detail = () => { ... } ๋ชจ๋ React ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋ ๊ฐ์ง ๋ฐฉ์ ๊ฐ์๋ ๋ช ๊ฐ์ง
https://ko.legacy.reactjs.org/docs/events.html
๋ณ์์ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ํ์ด์ง๋ฅผ ์ ๋ฐ์ดํธ ํ๋๋ก ๋ง๋ค์ด์ฃผ๋ ๊ฒ์ด useState์ ๋๋ค.๋จผ์ useState๋ฅผ React์์ import ํ๊ธฐ ์ํด import ๊ตฌ๋ฌธ์ {useState}๋ฅผ ์ถ๊ฐํฉ๋๋ค. useState๋ฅผ ์คํํ๋ฉด state ๋ณ์์ state ๋ณ์์ ์
๋ด๊ฐ ๋ญ ๊ตฌํํ๊ณ ์ํ ๋ ๋จธ๋ฆฟ์์ ์์ด์ ๊ตฌ๊ธ๋ง์ ํด์ copy& paste ํด๋ ๋๋๊ฑธ๊น!!!!!!!!!ํ ์ค ํ ์ค ๋ฏ์ด๋ด์ผํ๋๊ณ ๋ฏผ์ด๋ค
์ด๋ฒคํธ ํธ๋ค๋ง์ ๋ง์๋ ์ฌ์ฉํ๋ค.e.stopPropagation()๋ฒ๋ธ๋ง ๋จ๊ณ์์ ์์ ์์๋ก ์ด๋ฒคํธ๊ฐ ์ ๋ฌ ๋๋ ๊ฒ์ ๋ง๋๋ค. e.stopImmediatePropagation()e.preventDefault()์ด๋ฒคํธ ์ ํ ๋ฐฉ์งํ๋๊ฒ ์๋๊ณ ํ๊ทธ์ ๊ณ ์ ๋์์ ์ทจ์์ํจ
์บก์ณ๋ง~ ํ๊ฒ~ ๋ฒ๋ธ๋ง~ ์์์ธ๋ฐcapture ๊ธฐ๋ณธ์ด ๋ฒ๋ธ๋ง์ด๋ค.์ถ๋ ฅ ๊ฒฐ๊ณผ๊ฐ p div form ์์์๋ง์ฝ ์บก์ณ๋ง์ผ๋ก ํ๊ณ ์ถ๋ค!!?true๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค!๊ทธ๋ฌ๋ฉด ์์๊ฐ form div p ์ด๋ ๊ฒ ๋จ
์ค๋ ํ์ด๋จธ ๋ง๋ค๊ธฐ๋ฅผ ํ๋๋ฐ html css ๊ตฌํํ๋๊น ์๋ฐ์คํฌ๋ฆฝํธ ํ ์๊ฐ์ด ์์๋ค...์ฌ์ค ์๊ฐ ๋ง์์ด๋ ํ~์ฐธ ๊ฑธ๋ ธ์๋ฏDOM ๋ถํฐ ์ ์ ์ค์ ๋จ๋๋ฐ ์ด๋ฒ ์ฃผ๋ง๊ณผ ์ถ์๋์ DOM, ๊ทธ๋ฆฌ๊ณ ๋ฆฌ์กํธ ์ ๋ณตํด๋ฒ๋ฆด๊ฑฐ์ ํ์ดํ ๐๐
repository>settings>pages๋ค์ด๊ฐ์ save ๋๋ฅธ๋ค. ๋ช ๋ถ ํ๋ฉด url์ด ๋์จ๋ค.http://{์ด๋ฆ}.github.io/{repository์ด๋ฆ}npm install gh-pages --save-devpackage.json ๋ค์ด๊ฐ์"home
\*\*\*\*react๋ ์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ฅผ ๋ง๋๋ ๊ธฐ์ ์ด๋ค.์ฌ์ฉ์ ์ ์ ํ๊ทธ๋ component๋ผ๊ณ ํ๋ค.\*\*\*\*
ํ ์์ ๋ฃ๋ค๊ฐ ๋ด์งํ๋ฉด ๋๋์ฒด ๋ญ ์๋ฆฐ์ง ๊ฐ์ ๋ชป ์ก๊ฒ ๋ค ํฐ์ผ๋ฌ๋ค๋๊ฐ ์ง๋ฌธํ๋ฉด ํ๋ฆ์ด ๋๊ธฐ๋ ๊ฑฐ ๊ฐ์์ ๋ด ์๊ฐํ๋ฉด ์ ๋งํผ ๊ฐ์์์ด๋กํ์ง ์ด๊ฑธ!!!์ฌ์ง์ด ์ํ์ ์์ ๋ช ๋ฒ ๋น ์ง๋๊น ์ค์ต์๊ฐ ์ฃผ์ด์ ธ๋ ํ ์ ์๋๊ฒ ์๋ค...์ด๋กํ์ง ์ด๋กํ๋\~~!!~!!!์ธํ๋ฐ์ผ๋ก
React์์ props๋ "properties"์ ์ค์๋ง๋ก, ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฉ์ปค๋์ฆ์ ๋๋ค. ์ด๊ฒ์ React ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ปดํฌ๋ํธ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฌ์ฉํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.props๋
npx create-react-app ์์ฑํ ํด๋๋ช --template basic-reactscr ์์ app.jssrc index.htmlindex.html
JSON(JavaScript Object Notation)์ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ณ ๊ตํํ๊ธฐ ์ํ ๊ฒฝ๋์ ๋ฐ์ดํฐ ํ์์ ๋๋ค. JSON์ ํ ์คํธ ๊ธฐ๋ฐ ํ์์ผ๋ก, ์ฌ๋์ด ์ฝ๊ณ ์ฐ๊ธฐ ์ฝ๊ณ , ๊ธฐ๊ณ๊ฐ ํ์ฑํ๊ณ ์์ฑํ๊ธฐ๋ ์ฝ์ต๋๋ค. JSON์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด์ ๋งค์ฐ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ๊ฐ
์น๋ธ๋ผ์ฐ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํจ๋ฉ์๋1.localStorage.getItem: ์ ์ฅ๋ ๊ฐ์ ์ถ์ถํ๊ณ ์์ผ๋ฉด ์ธ๋ํ์ธ๋๊ฐ ๋์จ๋ค.localSorage.key localStoragekeyํํ๋ก ์ฌ์ฉํ ์ ์๋ค.2\. localStorage.setItem(ํค,๊ฐ)3\. loca