组合式 API 和选项式 API 是 Vue.js 提供的两种不同的 API。组合式 API 更加灵活,在处理复杂场景时更有效,而选项式 API 则更易于入门和使用,适合处理简单的场景。下面是组合式 API 和选项式 API 的一个比较:
组合式 API
<template><div><p>{{ title }}</p><button @click="increaseCount">点击按钮 +1</button><p>当前计数: {{ count }}</p></div>
</template><script>
import { reactive, computed, watch } from 'vue';export default {setup() {const data = reactive({title: '使用组合式 API',count: 0,});const increaseCount = () => {data.count++;};const doubleCount = computed(() => {return data.count * 2;});watch(() => data.count,(newCount, oldCount) => {console.log(`计数从 ${oldCount} 变为 ${newCount}`);});return {title: data.title,count: data.count,increaseCount,doubleCount,};},
};
</script>
选项式 API
<template><div><p>{{ title }}</p><button @click="increaseCount">点击按钮 +1</button><p>当前计数: {{ count }}</p></div>
</template><script>
export default {data() {return {title: '使用选项式 API',count: 0,};},methods: {increaseCount() {this.count++;},},computed: {doubleCount() {return this.count * 2;},},watch: {count(newCount, oldCount) {console.log(`计数从 ${oldCount} 变为 ${newCount}`);},},
};
</script>