昨天寫了 Vue 的 Options API,它用 data、methods、computed 來分門別類。這種寫法清楚、直觀,但在會有「邏輯分散」的問題。於是,Vue 3 推出了新的寫法 —— Composition API。它最大的特色就是:邏輯集中在一起,彈性更高,能抽出共用函式。
<script setup>
import { ref, computed } from 'vue'
const count = ref(0)
const double = computed(() => count.value * 2)
function increment() {
count.value++
}
</script>
<template>
<p>{{ count }} → {{ double }}</p>
<button @click="increment">增加</button>
</template>
ref
:建立單一響應式數值reactive
:建立物件或陣列的響應式狀態computed
:計算屬性watch
:監聽狀態變化對比 Option API
<script>
export default {
data() {
return { count: 0 }
},
methods: {
increment() { this.count++ }
},
computed: {
double() { return this.count * 2 }
}
}
</script>
Options API 特徵
Composition API 特徵
感覺明天可以來看一下 composable 函式的部分