昨天寫了 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 函式的部分