๐โโ๏ธSPA(Single-Page Application) ๊ฐ๋ ์ ์ดํดํ๊ณ ์ค๋ช ํ ์ ์๋ค.
SPA๋ ์๋ฒ๋ก๋ถํฐ ์์ ํ ์๋ก์ด ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค๋ ๊ฒ์ด ์๋๋ผ,
ํ๋ฉด์ ์
๋ฐ์ดํธํ๊ธฐ ์ํด ํ์ํ ๋ฐ์ดํฐ๋ง ์๋ฒ์์ ์ ๋ฌ๋ฐ์ ๋ธ๋ผ์ฐ์ ์์ ํด๋นํ๋ ๋ถ๋ถ๋ง ์
๋ฐ์ดํธํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์ด๋ ์น ์ฌ์ดํธ๋ฅผ ๋งํ๋ค.
๐โโ๏ธSPA์ ์ฅ, ๋จ์ ์ ๋ํด ์ดํดํ๊ณ ์ค๋ช ํ ์ ์๋ค.
์ฅ์ : ์ ์ฒด ํ์ด์ง๊ฐ ์๋๋ผ ํ์ํ ๋ฐ์ดํฐ๋ง ๋ฐ์์ ํ๋ฉด์ ์
๋ฐ์ดํธํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ interaction์ ๋น ๋ฅด๊ฒ ๋ฐ์ํ๋ค.
์๋ฒ ๊ณผ๋ถํ ๋ฌธ์ ๊ฐ ์ค์ด๋ ๋ค. ์๋๊ฐ ๋น ๋ฅด๋ค.
๋จ์ : JavaScript ํ์ผ์ด ๋ฌด๊ฑฐ์์ ์ด JavaScript ํ์ผ์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ผ๋ก ์ธํด ์ฒซ ํ๋ฉด์ ๋ก๋ฉ ์๊ฐ์ด ๊ธธ์ด์ง๋ค.
๊ฒ์์์ง ์ต์ ํ์ ์ข์ง์๋ค.
๐โโ๏ธ์์ด์ดํ๋ ์์ ๋ณด๊ณ ์ด๋ ๋ถ๋ถ์ ์ปดํฌ๋ํธ๋ก ๊ตฌ๋ถํ ์ง ์ค์ค๋ก ์ ํ ์ ์๋ค.
๐โโ๏ธReact์์ npm์ผ๋ก React Router DOM์ ์ค์น(npm install react-router-dom)ํ๊ณ ์ด์ฉํ ์ ์๋ค.
๐โโ๏ธReact Router DOM๋ฅผ ์ด์ฉํ์ฌ SPA๋ฅผ ๊ตฌํํ ์ ์๋ค.
๐โโ๏ธ๋ผ์ฐํ ๊ตฌ์กฐ๋ฅผ ์งค ์ ์์ด์ผ ํ๊ณ , ์ด์ ํ์ํ ๊ธฐ์ด ๋ฌธ๋ฒ๋ค์ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค.
<a>
ํ๊ทธ๊ฐ ์๋ <Link>
ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ์ด์ <a>
ํ๊ทธ๋ ํ์ด์ง๋ฅผ ์ ํํ๋ ๊ณผ์ ์์ ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ ๋ค์ ์ฒ์๋ถํฐ ๋ ๋๋ง์ ์ํจ๋ค. ์ฆ, ์๋ก๊ณ ์นจ ํ์์ด ์ผ์ด๋๋ค.
ํ์ง๋ง <Link>
์ปดํฌ๋ํธ๋ ํ์ด์ง ์ ํ์ ๋ฐฉ์งํ๋ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด์๊ธฐ ๋๋ฌธ์ SPA๋ฅผ ๊ตฌํํ ์ ์๋ค.
Switch
์ปดํฌ๋ํธ๋ ์ฌ๋ฌ route์ค์์ ์ผ์นํ๋ ๋จ ํ๋์ route๋ง ๋ ๋๋งํ๋ค.
function getLengthOfLongestElement(arr) {
return arr.reduce(function(acc,cur){
let longest = acc
if(cur.length > longest.length){
longest = cur
}
else{
longest = acc
}
return longest //reduce๋ return value๊ฐ ๋ค์๋ฐํด์ acc๊ฐ์ด ๋๊ธฐ๋๋ฌธ์ longest.length๋ก ์ฒซ๋ฒ์งธ๋ฐํด๊ฐ ๋๋๊ณ ๊ทธ ๋ค์๋ฐํด์ longest๊ฐ ์ซ์๊ฐ๋๋ค.
},'').length
}
// ๋ฌธ์์ด์ ์์๋ก ๊ฐ๋ arr๋ฅผ ์
๋ ฅ๋ฐ์ ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ฆฌํดํด์ผํ๋ค.
//reduce๋ก ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด์ returnํ๋ค.
//๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฆฌํด๊ฐ์ ๊ธธ์ด์ .length ๋ฅผ ๋ถ์ธ๋ค.
acc๊ฐ ์ฒ์์๋ง ์ด๊ธฐ๊ฐ์ด๊ณ ๊ทธ ๋ค์ ๋ฐํด๋ถํฐ๋ return๋ ๊ฐ์ด acc์ ํ ๋น๋๋ค๋ ๊ฒ์ ์ ๋ชฐ๋์๋ค. ๊ฐ๋ ์ด ์ฝํด์ ํค๋งธ๋ ๋ฌธ์ ์๋ค.
๊ณต์๋ฌธ์์์ "This is by design"
์ด๋ฐ์์ผ๋ก ์จ์๋๊ฑด ๊ทธ๋ฅ ์๋ ค๊ณ ํ์ง๋ง๊ณ ์ฐ๋ผ๋ ๋ง์ด๋ค. ์๋๋ฐฉ๋ฒ์ด ๋งค์ฐ ๋ณต์กํ๋ค. ๊ท์น์ด๋ค.
react์์ ์ปดํฌ๋ํธ ๋ฐ์๋ //blahblah
์ด๋ ๊ฒ ์ฃผ์์ ์ธ ์ ์๊ณ
์ปดํฌ๋ํธ ์์์ {/* blahblah*/}
์๋ ๊ฒ์ด๋ค.