Vue 06-1 Develope based on SFC

Seungju Hwangยท2021๋…„ 1์›” 3์ผ
0

Vue

๋ชฉ๋ก ๋ณด๊ธฐ
6/18
post-thumbnail

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>
//a.js
const a = 1
console.log(a)
// result : 1
//b.js
a = 2

-> ์—๋Ÿฌ ๋œธ Assignment to constant variable. ์žฌํ• ๋‹น ์—๋Ÿฌ!!

  • JS๋„ ๋ชจ๋“ˆ์ด ํ•„์š”ํ•  ๊ฑฐ ๊ฐ™์•„์š”ใ… 
  • ๊ทธ๋Ÿฐ๋ฐ ๋ชจ๋“ˆ๊ฐ„์˜ ์˜์กด์„ฑ์ด ๋ฐœ์ƒํ•ด์š”. ( a.js โ†’ b.js ๋ผ๋Š” ์ˆœ์„œ ๋•Œ๋ฌธ์—...)

-> ํ•˜๋‚˜์˜ bundle:๋ฌถ์Œ ์œผ๋กœ ๋งŒ๋“ค์–ด์„œ ์“ฐ๋„๋ก ํ•ด์ฃผ๋Š” ๋„๊ตฌ

profile
๊ธฐ๋กํ•˜๋Š” ์Šต๊ด€์€ ์‰ฝ๊ฒŒ ๋ฌด๋„ˆ์ง€์ง€ ์•Š์•„์š”.

0๊ฐœ์˜ ๋Œ“๊ธ€