1.入口文件写法
vue2
import Vue from 'vue'
new Vue({
render: h=>h(App)
}).$mount('#app')
vue3
import { createApp } from 'vue'
createApp({
data(){},
methods:{}
....
}).$mount('#app')
2.API 推荐写法
vue2推荐选项式API(特点是数据和方法是分开的)
export default {
data(){
return {...}
},
methods:{...},
computed:{...}
}
vue3推荐组合式API (数据和方法都写在setup函数里面)
export default {
setup(){
let a = 1;
let obj = {...};
return {
a, obj
}
}
}
vue2的数据都是响应式的,vue3可以指定数据是响应式的或者非响应式的, 指定数据为响应式的,需要用到ref, reactive, toRefs
ref(10) 将基本类型数据变成响应式数据
通过ref产生的数据在模版里面直接使用,在js里面通过.value修改数据
reactive(obj)将引用类型数据变成响应式
…toRefs(state) 导出给模版使用的时候用toRefs包裹,在模版里面使用的时候可以直接访问对象里面的属性
<template>
123
<div>{{ a+b }}</div>
</template>
<script>
import { ref, toRefs, reactive } from 'vue';
export default {
setup(){
let a = ref(1);
let obj = reactive({
a:1,
b:2
});
console.log(obj)
return {
a,
...toRefs(obj)
}
}
}
</script>