Options API 是 Vue 2 主要的寫作方式,透過 data、methods、computed、watch 等選項來組織元件邏輯。
data
methods
computed
watch
優點
this
缺點
mixins
<script> export default { data() { return { count: 0 }; }, methods: { increment() { this.count++; } } }; </script> <template> <div> <p>Count: {{ count }}</p> <button @click="increment">增加</button> </div> </template>
<script setup> import { ref } from 'vue'; const count = ref(0); const increment = () => { count.value++; }; </script> <template> <div> <p>Count: {{ count }}</p> <button @click="increment">增加</button> </div> </template>
composables
Options API vs Composition API
何時該使用哪一種?
Options API(Vue 2 傳統寫法)
說明
Options API 是 Vue 2 主要的寫作方式,透過
data、methods、computed、watch等選項來組織元件邏輯。優點
this:可直接透過this存取data、methods、computed中的屬性與方法。缺點
mixins實現邏輯重用,但易造成命名衝突與可讀性降低。this存取屬性會影響型別推斷。範例
<script> export default { data() { return { count: 0 }; }, methods: { increment() { this.count++; } } }; </script> <template> <div> <p>Count: {{ count }}</p> <button @click="increment">增加</button> </div> </template>Composition API(Vue 3 推薦寫法)
說明
範例
<script setup> import { ref } from 'vue'; const count = ref(0); const increment = () => { count.value++; }; </script> <template> <div> <p>Count: {{ count }}</p> <button @click="increment">增加</button> </div> </template>補充建議
composables能有效減少程式碼重複與維護成本。官方文件參考