Composition API

0 阅读1分钟

Composition API:按“业务逻辑/功能”组织代码(把同一功能相关的状态、计算、监听、生命周期放在一起,且容易抽成 useXxx() 复用)。

1. 代码组织方式

Composition:同一个功能可以“贴在一起”,阅读和维护更顺。

2. 逻辑复用能力

Composition:复用靠函数(useAuth()、useTable()),依赖显式,组合更灵活,几乎是 Vue3 大型项目的主流方式。

3. TypeScript 体验

Composition:变量/函数都是显式声明,TS 推导更自然(配合 <script setup> 更明显)。

案例:做一个 计数器,有 count、double,点按钮 +1,并在 count 变化时打印日志。

<template>
  <div>
    <p>count: {{ count }}</p>
    <p>double: {{ double }}</p>
    <button @click="inc">+1</button>
  </div>
</template>

<script setup lang="ts">
import { computed, onMounted, ref, watch } from 'vue'

const count = ref(0)

const double = computed(() => count.value * 2)

function inc() {
  count.value++
}

watch(count, (newVal, oldVal) => {
  console.log('count changed:', oldVal, '->', newVal)
})

onMounted(() => {
  console.log('mounted, count=', count.value)
})
</script>