Vue 3, ๊ธฐ๋ณธ ๋ฒ„์ „์ด ๋˜๋‹ค

๋“ค์–ด๊ฐ€๋ฉฐ

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋žœ๋งŒ์˜ ๊ธฐ์ˆ  ๊ธ€์ž…๋‹ˆ๋‹ค. ์ž‘๋…„์—๋Š” ํšŒ์‚ฌ, ๋ฉ˜ํ† ๋ง, ์œ ํŠœ๋ธŒ, ๊ฐœ์ธ ์ž‘์—… ๋•Œ๋ฌธ์— ๋ฐ”๋น ์„œ ๊ธฐ์ˆ  ๊ธ€์„ ๋งŽ์ด ๋ชป ์˜ฌ๋ ธ๋„ค์š”. ์˜ฌํ•ด๋Š” ์—ฌ๋Ÿฌ๋ถ„์—๊ฒŒ ๋„์›€ ๋  ๋งŒํ•  ๊ธ€๋“ค์„ ์ข€ ๋” ์ž์ฃผ ์˜ฌ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ๊ด€์‹ฌ ๋ถ€ํƒ๋“œ๋ฆด๊ฒŒ์š” ๐Ÿ˜„

์˜ค๋Š˜์€ Vue 3์— ๋Œ€ํ•œ ๊ธ€์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด์ „์— Vue 3 ๊ฐ€๋ณ๊ฒŒ ํ›‘์–ด๋ณด๊ธฐ ๊ธ€์„ ์ž‘์„ฑํ–ˆ์—ˆ๋Š”๋ฐ์š”. ํ‡ด๊ทผํ•˜์ž๋งˆ์ž ์ธํ”„๋Ÿฐ ์งˆ์˜ ๊ฒŒ์‹œํŒ์— ์˜ฌ๋ผ์˜จ ์งˆ๋ฌธ๋“ค์„ ๋ณด๋‹ˆ ๋นจ๋ฆฌ ์ •๋ฆฌํ•ด์„œ ์˜ฌ๋ ค์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๊ธ€์„ ์“ฐ๊ฒŒ ๋˜์—ˆ์–ด์š”. ์•„๋งˆ ์ œ ๊ฐ•์˜๋‚˜ ํ•™์Šต ์ž๋ฃŒ๋กœ Vue.js๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ค๋ฌด์—์„œ ๋˜ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŽ์„ ํ…๋ฐ์š”. ์ด์ œ ๋ง‰ Vue.js๋ฅผ ๋ฐฐ์šฐ์‹œ๋Š” ๋ถ„๋“ค ๊ทธ๋ฆฌ๊ณ  ์‹ค๋ฌด์—์„œ ์˜ค๋žœ๋งŒ์— ๋ทฐ CLI๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์‹ค ๋ถ„๋“ค๊ป˜ ์ข‹์€ ์ฐธ๊ณ  ์ž๋ฃŒ๊ฐ€ ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

๊ทธ๋Ÿผ ์‹œ์ž‘ํ• ๊ฒŒ์š”!

Vue.js ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์ผ์–ด๋‚œ ํฐ ๋ณ€ํ™”

22๋…„ 2์›” 7์ผ์ธ ์˜ค๋Š˜๋ถ€ํ„ฐ Vue.js ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง„์˜์— ํฐ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋ณธ ๋ฒ„์ „๊ณผ ๊ณต์‹ ๋ฌธ์„œ์˜ ์ฃผ์†Œ์ธ๋ฐ์š”. ์–ด๋–ค ๋‚ด์šฉ์ธ์ง€ ํ•˜๋‚˜ํ•˜๋‚˜ ์ฐจ๊ทผํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜„

์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ฒซ ๋ฒˆ์งธ ๋ณ€ํ™” - CDN ์ฃผ์†Œ

์˜ค๋Š˜๋ถ€ํ„ฐ Vue.js๋กœ ๊ฐœ๋ฐœํ•˜์‹ค ๋•Œ๋Š” Vue.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์„ ์ฃผ์˜ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด์ œ ๋ง‰ Vue.js๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์‹œ์ž‘ํ•˜์…จ๋‹ค๋ฉด ์•„๋งˆ HTML ํŒŒ์ผ์—์„œ CDN์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋“ค๊ณ  ์˜ค์‹ค ํ…๋ฐ์š”.

<body>
  <div id="app">
    <p>{{ message }}</p>
  </div>

  <script src="https://unpkg.com/vue"></script>
  <script>
    new Vue({
      el: '#app',
      data: {
        message: 'Hello Vue 2'
      }
    })
  </script>
</body>

์—ฌ๊ธฐ์„œ script ํƒœ๊ทธ์˜ ์†Œ์Šค ์ฃผ์†Œ์ธ https://unpkg.com/vue๋Š” ๋” ์ด์ƒ Vue 2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Vue 3๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐ”๋ผ๋ณด๊ฒŒ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ€๊ธ‰์  ์œ„์™€ ๊ฐ™์€ ์ฃผ์†Œ๋ณด๋‹ค๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฒ„์ „์ด ๋ช…์‹œ๋œ CDN ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆด๊ฒŒ์š” ๐Ÿ˜„

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>
<script src="https://unpkg.com/vue@2.6.14/dist/vue.js"></script>
<script src="https://unpkg.com/vue@2"></script>

Vue 2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ CDN ์ฃผ์†Œ์™€ ๊ด€๋ จ๋œ ๊ธ€์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š” ๐Ÿ˜„

์ฃผ๋ชฉํ•ด์•ผ ํ•  ๋‘ ๋ฒˆ์งธ ๋ณ€ํ™” - NPM ํŒจํ‚ค์ง€ ๋ฒ„์ „

๋ทฐ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์„ ํ•™์Šตํ•˜์‹œ๊ณ  ๋‚˜๋ฉด ๋Œ€๋ถ€๋ถ„ NPM๊ณผ Vue CLI๋ฅผ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ npm ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ•˜์‹ค ํ…๋ฐ์š”. ๊ธฐ์กด์— Vue 2๋กœ ํ•™์Šตํ•˜๊ณ  ์ด๋ฏธ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ๊ณ„์…จ๋˜ ๋ถ„๋“ค์€ ์•„๋ž˜ ๋ช…๋ น์–ด๊ฐ€ ์ต์ˆ™ํ•˜์‹ค ๊ฒ๋‹ˆ๋‹ค.

npm i vue
npm i vue-router
npm i vuex

์˜ค๋Š˜๋ถ€ํ„ฐ๋Š” Vue, VueRouter, Vuex ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ๋‘ Vue 3๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ค์น˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์›๋ž˜ ์šฐ๋ฆฌ๊ฐ€ ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฒ„์ „์€ ์•„๋งˆ ๋Œ€๋ถ€๋ถ„ ์•„๋ž˜์™€ ๊ฐ™์„ ํ…๋ฐ์š”.

{
  "dependencies": {
    "vue": "^2.6.14",
    "vue-router": "^3.5.3",
    "vuex": "^3.6.2"
  }
}

์ด์ œ ์œ„ ๋ฒ„์ „์€ ๋‹จ์ˆœํžˆ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋ฆ„๋งŒ ์ ๋Š”๋‹ค๊ณ  ํ•ด์„œ ๊ธฐ๋ณธ ๊ฐ’์œผ๋กœ ์„ค์น˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์ œ๋Š” Vue 3๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•œ ๋ทฐ ๋ผ์šฐํ„ฐ์™€ ๋ทฐ์—‘์Šค์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์ด ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๋ง์ด์ฃ .

{
  "dependencies": {
    "vue": "^3.2.30",
    "vue-router": "^4.0.12",
    "vuex": "^4.0.2"
  }
}

๋”ฐ๋ผ์„œ, ์ด๋ฏธ Vue 2 ๋ฒ„์ „์œผ๋กœ ๋ทฐ๋ฅผ ๋ฐฐ์šฐ๊ณ  ์žˆ๊ฑฐ๋‚˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ๊ณ„์‹  ๋ถ„๋“ค์€ ๋ทฐ ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์„ค์น˜ํ•˜์‹ค ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ผญ ๋ฒ„์ „์„ ๋ช…์‹œํ•ด ์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

npm i vue@2.6.14
npm i vue-router@3.5.3
npm i vuex@3.6.2

์ฃผ๋ชฉํ•ด์•ผ ํ•  ์„ธ ๋ฒˆ์งธ ๋ณ€ํ™” - ๊ณต์‹๋ฌธ์„œ ์ฃผ์†Œ

Vue.js๋ฅผ ์˜ค๋žซ๋™์•ˆ ๊ฐœ๋ฐœํ•ด ์˜ค์‹  ๋ถ„์ด๋ผ๋ฉด vuejs.org๊ฐ€ ๊ณต์‹ ๋ฌธ์„œ ์ฃผ์†Œ๋ผ๋Š” ๊ฑธ ์•Œ๊ณ  ๊ณ„์‹ค ๊ฒ๋‹ˆ๋‹ค. 2020๋…„ 9์›”์— Vue 3๊ฐ€ ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ ๋˜๊ณ  ๋‚˜์„œ๋„ Vue 2์—์„œ Vue 3๋กœ ์‚ฌ์šฉ์ž๋“ค์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๊ฝค ์˜ค๋žœ ๊ธฐ๊ฐ„ Vue 2๋ฅผ ๊ธฐ์กด ๊ณต์‹ ๋ฌธ์„œ๋กœ ์œ ์ง€ํ•ด ์™”๋Š”๋ฐ์š”.

์˜ค๋Š˜๋ถ€ํ„ฐ๋Š” ๊ณต์‹ ๋ฌธ์„œ์˜ ๊ธฐ์ค€ ๋ฒ„์ „์ด Vue 3๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Vue 3 ๊ณต์‹ ๋ฌธ์„œ

๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ Vue 2์˜ ๋ฌธ์„œ๋ฅผ ๋ณด์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ตฌ์š”. ์•„๋ž˜์˜ ์ฃผ์†Œ๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ์กด ์ž๋ฃŒ๋“ค์„ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Vue 3๊ฐ€ ๊ธฐ์ค€ ๋ฒ„์ „์ด ๋˜์—ˆ๋Š”๋ฐ ์™œ Vue 2๋ฅผ ์•ˆ๋‚ดํ•˜๋‚˜์š”?

์‹ค๋ฌด์—์„œ๋Š” ์—ฌ์ „ํžˆ Vue 2๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ƒํƒœ๊ณ„๋„ ์•„์ง์€ Vue 2๊ฐ€ ๋” ํฌ๊ณ  ์„ฑ์ˆ™ํ•ฉ๋‹ˆ๋‹ค. ๋ทฐ ์ฐฝ์‹œ์ž ์—๋ฐ˜ ์ž…์žฅ์—์„œ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ Vue 2์—์„œ Vue 3๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋ฐฐ๋ คํ•ด์„œ Vue 3๊ฐ€ ๋‚˜์˜จ ์ดํ›„์—๋„ Vue 2๋ฅผ ๊ฝค ์˜ค๋žœ ๊ธฐ๊ฐ„ ๋™์•ˆ ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์œ ์ง€ํ•ด ์˜จ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‹ค ๋ณด๋‹ˆ ๋ง‰์ƒ Vue 3๋กœ ์ด๋™ํ•˜๋Š” ์›€์ง์ž„๋ณด๋‹ค ๊ธฐ์กด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์ธ Vue 2๋ฅผ ๊ณ ์ˆ˜ํ•˜๋Š” ์‚ฌ์šฉ์ž๋“ค์ด ๋งŽ์•˜๋˜ ๊ฒƒ ๊ฐ™์•„์š”. ํŠนํžˆ, Vue 3์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์ธ composition api๋Š” Vue 2์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์„œ Vue 3๋กœ ์ด๋™ํ•˜๋Š” ์ˆ˜์š”๊ฐ€ ์ ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์•„์š”.

NPM ๋‹ค์šด๋กœ๋“œ๋Ÿ‰ ๋น„๊ต Vue 2 vs Vue 3(22๋…„ 2์›” 7์ผ ๊ธฐ์ค€)

๋งˆ์ง€๋ง‰์œผ๋กœ, ์‹ค๋ฌด์ž ์ž…์žฅ์—์„œ๋Š” Vue, VueRouter, Vuex์™€ ๊ฐ™์€ ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด์™ธ์—๋„ Vuetify, BootstrapVue, VueChart, VueDatepicker, VueTable ๋“ฑ์˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋Š”๋ฐ ์•„์ง ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์—ฌ์ „ํžˆ Vue 3๋ฅผ ์ œ๋Œ€๋กœ ์ง€์›ํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋Š” ์‹ค์ •์ž…๋‹ˆ๋‹ค.

๋ทฐ ์ฝ”์–ดํŒ€ ์ž…์žฅ์—์„œ๋Š” Vue 3๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์„ฑ์ˆ™๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ์‹œ๊ฐ„์„ ์ฃผ์—ˆ๋Š”๋ฐ๋„ ์—ฌ์ „ํžˆ ๊ฒฉ์ฐจ๊ฐ€ ํฌ๋‹ค๊ณ  ๋А๋ผ์ž Vue 3๋ฅผ ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์„ ํƒํ•˜๋Š” ๊ฐ•์ˆ˜๋ฅผ ๋‘” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ณ€ํ™”๊ฐ€ Vue.js ์ปค๋ฎค๋‹ˆํ‹ฐ์— ๊ธ์ •์ ์ธ ์˜ํ–ฅ์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋„ค์š”.

FAQ

์•„๋งˆ ์ด ๊ธ€์„ ์ฝ๊ณ  ๊ถ๊ธˆํ•ด ํ•˜์‹ค ๋งŒํ•œ ๋ถ€๋ถ„๋“ค์„ ์ •๋ฆฌํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค :)

Q. Vue 2๋Š” ๊ทธ๋Ÿผ ๋” ์ด์ƒ ์“ฐ๋ฉด ์•ˆ๋˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€์š”?

์ง€๋‚œ๋ฒˆ RFC์—์„œ ์—๋ฐ˜์ด Vue 3์˜ ์ฃผ์š” ํŠน์ง•์„ Vue 2์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›์„ ๊ฐ•ํ™”ํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ Vue 3๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ํ•ด์„œ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋Œ€๋‹ค์ˆ˜๋ฅผ ์ฐจ์ง€ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „์„ ํฌ๊ธฐํ•˜์ง„ ๋ชปํ•  ๊ฒ๋‹ˆ๋‹ค. ์ ์ง„์ ์œผ๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ค‘์‹ฌ ๋ฒ„์ „์ด 3์ด ๋˜๋„๋ก ๊ธฐ์กด Vue 2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋„ ์ง€์›ํ•ด ์ค„ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

Q. ๋ทฐ CLI๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Vue 3๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑด๊ฐ€์š”?

๋ทฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์‹คํ…๋ฐ์š”.

vue create ํ”„๋กœ์ ํŠธ์ด๋ฆ„

๋ณดํ†ต ์—ฌ๊ธฐ์„œ ์„œ๋น„์Šค ์„ฑ๊ฒฉ์— ๋งž์ถฐ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Manually select features๋ฅผ ์„ ํƒํ•˜์‹ค ๊ฒ๋‹ˆ๋‹ค. ์ด ๋•Œ Vue.js ๋ฒ„์ „์„ 2 ๋ฒ„์ „์œผ๋กœ ์„ ํƒํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

vue-cli-guide

Q. Vue 2๋กœ ๋ทฐ๋ฅผ ๋ฐฐ์› ๋Š”๋ฐ Vue 3๋ฅผ ๋‹ค์‹œ ๋ฐฐ์›Œ์•ผ ํ• ๊นŒ์š”?

Vue 2๋กœ ํ•™์Šตํ•˜์‹  ๋‚ด์šฉ ๋ชจ๋‘ Vue 3์—์„œ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘์„ฑ, ์ปดํฌ๋„ŒํŠธ, ๋ผ์šฐํ„ฐ, ๋ทฐ์—‘์Šค ๋“ฑ์˜ ์ฃผ์š” ๊ฐœ๋… ๋ชจ๋‘ Vue 2์™€ Vue 3์—์„œ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ๊ต์œก ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋งŽ์€ Vue 2๋กœ ๋ฐฐ์šฐ์‹œ๋Š”๊ฒŒ ๋” ์ˆ˜์›”ํ•˜์‹ค ๊ฑฐ์˜ˆ์š”. Vue 3๋Š” Vue 2์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ setup() ์ด๋ผ๋Š” API ํ•˜๋‚˜ ์ •๋„๋งŒ ๋” ์•Œ๊ณ  ๊ณ„์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค ๐Ÿ˜„

Vue 2์™€ Vue 3์˜ ์ฐจ์ด์ ์ด ๊ถ๊ธˆํ•˜์‹œ๋‹ค๋ฉด ์ œ๊ฐ€ ์ž‘๋…„ 11์›”์— ๋ฐœํ‘œํ•œ ์•„๋ž˜ ์˜์ƒ์„ ์ฐธ๊ณ ํ•ด ๋ณด์„ธ์š” :)

Q. Vue 3์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ ์–ด๋””์„œ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ์š”?

Vue 3 ๊ฐ€๋ณ๊ฒŒ ํ›‘์–ด๋ณด๊ธฐ ๊ธ€์„ ์ฐธ๊ณ ํ•ด ๋ณด์„ธ์š” ๐Ÿ˜„

๋งˆ๋ฌด๋ฆฌ

์ƒˆํ•ด๊ฐ€ ๋œ์ง€ ์–ผ๋งˆ ์•ˆ๋ผ์„œ ์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๊ธฐ์ˆ ์„ ์—ด์‹ฌํžˆ ํ•™์Šตํ•˜๊ณ  ๊ณ„์‹  ๊ฒƒ ๊ฐ™์€๋ฐ์š”. ๊ฐœ๋…์„ ๋ฐฐ์šฐ๊ณ  ์ง€์‹์„ ์Œ“์•„๊ฐ€๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ๊ด€์‹ฌ ์žˆ๊ฒŒ ํ•™์Šตํ•˜๋Š” ๊ธฐ์ˆ ์˜ ์ฃผ์š” ๋™ํ–ฅ์ด๋‚˜ ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ณ€ํ™”๋ฅผ ๊ด€์ฐฐํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด ์—ฌ๋Ÿฌ๋ถ„์˜ Vue.js ํ•™์Šต๊ณผ ๊ฐœ๋ฐœ์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋„ค์š”. ๊ทธ๋Ÿผ ๋‹ค์Œ์— ๋˜ ์ƒˆ๋กœ์šด ์ปจํ…์ธ ๋กœ ์ฐพ์•„๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

์ฐธ๊ณ  ์ž๋ฃŒ

Vue 3 as the New Default

Vue 3 ํ•™์Šต ๋กœ๋“œ๋งต

Vue 3 ์™„๋ฒฝ ๋งˆ์Šคํ„ฐ ๋กœ๋“œ๋งต / Vue + TypeScript ํ•™์Šต ๋กœ๋“œ๋งต / React + TypeScript ํ•™์Šต ๋กœ๋“œ๋งต

์บกํ‹ดํŒ๊ต์˜ ์˜จ๋ผ์ธ ๊ฐ•์˜

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ๊ณผ Vue.js๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ„๋“ค๊ป˜ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐Ÿ˜„

์ธํ”„๋Ÿฐ ์˜จ๋ผ์ธ ๊ฐ•์˜ : Vue 3 ์‹œ์ž‘ํ•˜๊ธฐ / Vue.js ์‹œ์ž‘ํ•˜๊ธฐ(Vue 2) / Vue.js ์ค‘๊ธ‰
์ธํ”„๋Ÿฐ ์˜จ๋ผ์ธ ๊ฐ•์˜ : Vue.js ์™„๋ฒฝ ๊ฐ€์ด๋“œ / Vue.js ๋์žฅ๋‚ด๊ธฐ / ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์›นํŒฉ
์ธํ”„๋Ÿฐ ์˜จ๋ผ์ธ ๊ฐ•์˜ : ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ž…๋ฌธ / ์‹ค์ „ ํ”„๋กœ์ ํŠธ๋กœ ๋ฐฐ์šฐ๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ / Vue.js + TypeScript ์™„๋ฒฝ ๊ฐ€์ด๋“œ

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋” ์ž˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•

์บกํ‹ดํŒ๊ต์˜ ๋†์ถ•๋œ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ์ง€์‹๊ณผ ๋…ธํ•˜์šฐ๋ฅผ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜ ๋„์„œ๋ฅผ ์ฝ์–ด๋ณด์„ธ์š” :)

์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ๋„์„œ