์๋๋ vue2์ vue3์ ์ํ์ฝ๋๋ค.
vue2 ์ํ ์ฝ๋ (Options API)
<!-- Vue2Component.vue -->
<template>
<div>
<h1>{{ message }}</h1>
<button @click="changeMessage">Change Message</button>
</div>
</template>
<script>
export default {
data() {
return {
message: "Hello, Vue 2!",
};
},
methods: {
changeMessage() {
this.message = "New Message!";
},
},
};
</script>
<style>
/* Add your styles here */
</style>
vue3 ์ํ์ฝ๋ (Composition API)
<!-- Vue3CompositionComponent.vue -->
<template>
<div>
<h1>{{ message }}</h1>
<button @click="changeMessage">Change Message</button>
</div>
</template>
<script>
import { ref } from "vue";
export default {
setup() {
const message = ref("Hello, Vue 3!");
const changeMessage = () => {
message.value = "New Message!";
};
return {
message,
changeMessage,
};
},
};
</script>
<style>
/* Add your styles here */
</style>
Options API์ Composition API ๊ฐ ๋๋์ฒด ๋ญ๊น?
์ ์๋ฅผ ์ฝ์ด๋ดค์๋ ๋ฑํ ์๋ฟ๋ ์ค๋ช ๋ค์ด ํฌ๊ฒ ์์๋ค.
๊ทธ๋์ ์ฐจ์ด์ ์ ํ๋ฒ ์ ๋ฆฌํด๋ณด์.
Options API | Composition API | |
๊ตฌ์ฑ | ๊ฐ์ฒด ์ค์ฌ์ ์ ๊ทผ๋ฐฉ๋ฒ data, methods, computed ๋ฑ์ ์ต์ ๋ฑ์ ํตํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ๊ตฌ์ฑํ๋ค. |
ํจ์ ์ค์ฌ์ ์ ๊ทผ. data ์ต์ ๋์ ๋ฐ๋ก ๋ณ์๋ฅผ return{}ํ๋ค. methods๋์ ๋ฐ๋ก ํจ์๋ฅผ ์ ์ธํ๊ณ mounted ์ต์ ๋์ onMounted()ํจ์๋ก ๋ฐ๋ก ํํํ๋ค. |
์ฌ์ฌ์ฉ์ฑ | ์ ํ์ ์ด๋ค. mixins |
๋ ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋ณด์ธ๋ค. composables |
๋ผ์ดํ์ฌ์ดํด | Lifecycle hooks options object์ ์ง์ ์ ์๋๋ค. |
Lifecycle hooks๋ setup ํจ์์ ํ ๋ถ๋ถ์ด๋ค. |
๊ฐ๋ ์ฑ | ๊ฐ๋ ์ฑ์ด ๋ ์ข์ |
vue3 ํ๋ก์ ํธ๋ก ๊ตฌ์ฑํด์ vue2 ๋ฌธ๋ฒ์ผ๋ก ์ฝ๋ฉ์ ํด์๋ ๋...
์ง๊ธ์ด๋ผ๋ ๊ณต๋ถํด์ ๋ค์ vue3 ์คํ์ผ๋ก ์กฐ๊ธ์ฉ ๋ฐ๊ฟ๋ณด์.
๋๊ธ