Vue 3.0采用的Composition API与Vue 2.x使用的Options API在编写Vue组件时有一些区别。
区别:
-
组织代码的方式不同:
- Options API:按照选项进行组织,将数据、计算属性、方法等声明在一个对象中。
- Composition API:按照逻辑功能进行组织,将相关逻辑代码放在一个函数中。
-
数据和方法的访问方式不同:
- Options API:通过
this
关键字访问数据和方法。 - Composition API:通过引入具体的函数进行数据和方法的处理。
- Options API:通过
作用:
- Options API:提供了一种简洁明了的方式来定义和组织组件的选项(data、methods、computed等),适合于小型应用或简单的组件。
- Composition API:通过将逻辑相关的代码封装在函数中,提供更灵活的组织方式,使得代码复用、组织和测试更加方便,特别适合于大型应用或复杂的组件。
使用:
html
<template>
<div>
<p>{{ message }}</p>
<button @click="changeMessage">Change Message</button>
</div>
</template>
<script>
export default {
data() {
return {
message: 'Hello Vue'
};
},
methods: {
changeMessage() {
this.message = 'New Message';
}
}
};
</script>
2.Composition API 示例:
html
<template>
<div>
<p>{{ message }}</p>
<button @click="changeMessage">Change Message</button>
</div>
</template>
<script>
import { reactive } from 'vue';
export default {
setup() {
const state = reactive({
message: 'Hello Vue'
});
const changeMessage = () => {
state.message = 'New Message';
};
return {
...state,
changeMessage
};
}
};
</script>
在Composition API示例中,使用reactive
函数将数据变为响应式,并利用setup()
函数组织逻辑代码。通过返回一个包含数据和方法的对象,让它们可以在模板中被访问。
通过Composition API,我们可以将相关的代码逻辑进行封装并复用,使得代码更加清晰、可维护性更强。此外,Composition API还提供了其他一些函数,如computed
、watch
等,用于处理计算属性和监听数据变化等操作。