SFC ๊ธฐ๋ฐ์ผ๋ก ๊ฐ๋ฐํ๊ธฐ
Single File Component๋ก ๊ฐ๋ฐํ๊ธฐ ์ํ JavaScript ๋ฐ์ ์ฌ
๐ต JavaScript ๋ฐ์ ์ฌ
JavaScript ํ๊ณ
- JavaScript์ ํ์์ ๋ธ๋ผ์ฐ์ ์์์ ์๋ํ๋ ์ธ์ด์์
- JavaScript๋ ํํธํ์ ํ์คํ์ ์ญ์ฌ
node.js (๊ทน๋ณต)
Google chrome V8 javascript engine์ผ๋ก ๋ง๋ค์ด ์ง Javascript runtime environment์ด๋ค.
- ๋ด ๋ก์ปฌ์์๋ JS๋ฅผ ์ธ ์ ์๊ฒ ๋์์ด! (runtime environment : ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋์ํ๋ ํ๊ฒฝ)
- ์ฆ, ๋ธ๋ผ์ฐ์ ์์์๋ง ๊ตฌ๋ํ๋ ๋ฐ์ชฝ์๋ฆฌ JavaScript๋ก Server Side Programming์ ํ ์ ์๊ฒ ๋์๋ค
๐ต SFC๋ฅผ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๊ธฐ๋ฅ
Babel
ํํธํ๋ JavaScript ๋ฌธ๋ฒ์ ๋ณํ(ํด์) ํด์ฃผ๊ธฐ ์ํด ์กด์ฌํ๋ ๋๊ตฌ
- compiler : ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์ฐ์ฌ ์๋ ๋ฌธ์๋ฅผ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ฒ์ญํ๋ค!
- ํํธํ๋ (ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ง ์ด์) JS ๋ฌธ๋ฒ์ ๋ํดํธํ ๋ฌธ๋ฒ์ผ๋ก ๋ณํํ๊ธฐ ์ํด ์กด์ฌํ๋ ๋๊ตฌ ( ์ต์ ๋ฌธ๋ฒ์ ์ด์ ๋ฌธ๋ฒ์ผ๋ก ๋ณ์ญํด์ฃผ๋ ๊ฒ!)
Webpack
๋ชจ๋ ๊ฐ์ ์์กด์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์กด์ฌํ๋ ๋๊ตฌ
- JS๋ ๋ชจ๋์ ์ ๊ณตํ์ง ์์์์ด.
- ๋ชจ๋์ด๋ ? scope๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค. JS๋ ์์ญ์ ์ ์ฒด๋ก ์ก์์ ๋ค๋ฅธ ํ์ผ์ด๋ผ๋ ์๋ก ๊ณต์ ํ์ด์.
๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
<body>
<script src="a.js"></script>
<script src="b.js"></script>
</body>
const a = 1
console.log(a)
a = 2
-> ์๋ฌ ๋ธ Assignment to constant variable. ์ฌํ ๋น ์๋ฌ!!
- JS๋ ๋ชจ๋์ด ํ์ํ ๊ฑฐ ๊ฐ์์ใ
- ๊ทธ๋ฐ๋ฐ ๋ชจ๋๊ฐ์
์์กด์ฑ
์ด ๋ฐ์ํด์. ( a.js โ b.js ๋ผ๋ ์์ ๋๋ฌธ์...)
-> ํ๋์ bundle:๋ฌถ์ ์ผ๋ก ๋ง๋ค์ด์ ์ฐ๋๋ก ํด์ฃผ๋ ๋๊ตฌ