Vue3 和 Vue2 的主要区别在于 Vue3 引入了 Composition API,这是一种新的组织和复用代码的方式。而 Vue2 主要依赖于 Options API。
先来看一个 Vue2 的示例:
// Vue 2
export default {
data() {
return {
count: 0
}
},
methods: {
increment() {
this.count++
}
},
mounted() {
console.log('Component has been mounted.')
}
}
同样的功能在 Vue3 中可以这样实现:
// Vue 3
import { ref, onMounted } from 'vue'
export default {
setup() {
const count = ref(0)
function increment() {
count.value++
}
onMounted(() => {
console.log('Component has been mounted.')
})
return {
count,
increment
}
}
}
从这两个例子中,我们可以看到以下几点不同:
Vue3 引入了 setup 函数,这是使用 Composition API 的入口。所有的响应式数据和方法都在 setup 函数中定义和返回。
Vue3 使用 ref 和 reactive 来创建响应式数据,而 Vue2 中则是在 data 函数中返回一个对象。
Vue3 中提供了一系列的生命周期钩子,如 onMounted、onUpdated 和 onUnmounted,这些钩子在 setup 函数内部使用。而在 Vue2 中,这些钩子是组件选项。
Vue3 的方法可以直接返回,而不需要像 Vue2 那样放在 methods 对象中。