(一)Vue3 简介
- 2020 年 9 月 18 日,Vue.js 发布 3.0 版本,代号:One Piece(海贼王)
- 耗时 2 年多、2600+次提交、30+个 RFC、600+次 PR、99 位贡献者
- GitHub 上的 tags 地址
(二)Vue3 带来了什么
大约 2 分钟
const xxx = ref(initValue);
ref
函数const 代理对象 = reactive(源对象)
Object.defineProperty()
对属性的读取、修改进行拦截(数据劫持)Object.defineProperty(data, 'count', {
get(){...},
set(){...}
});
reactive
转为 代理对象(Proxy)Object.defineProperty()
的 get
和 set
来实现响应式(数据劫持)this.$attrs
import { computed } from 'vue';
setup() {
...
// 计算属性——简写【没有考虑计算属性被修改的情况】
person.fullName = computed(() => {
return person.firstName + "-" + person.lastName;
});
// 计算属性——完整写法【考虑计算属性读和写的情况】
person.fullName = computed({
get() {
return person.firstName + "-" + person.lastName;
},
set(val) {
const nameArr = val.split("-");
person.firstName = nameArr[0];
person.lastName = nameArr[1];
},
});
}