入口文件使用createApp获取根实例。
组件内刻意不使用一个根标签。
setup可以返回一个对象或者一个函数
setup() {
let name = "wth";
let age = 12;
function changeName() {
console.log(1111);
}
return {
name,
age,
changeName,
};
return () => h("h1", "123");
},
vue3 基本数据类型使用difineProperty,引用类型使用proxy实现响应式。
ref定义一个响应式数据,reactive定义一个对象类型的响应式数据。
可以通过Reflect去操作对象。
shallowReactive只会处理对象的第一层变成响应式,shallowRef只会把对象变成refiml对象,当直接给对象赋值时会有响应式,但修改对象里的属性则没有。
toRaw只能还原对象,markRow把一个对象变成非响应式的。
自定义Ref
function myRef(v) {
return customRef((track, trigger) => {
return {
get() {
console.log("当前数据已被读取");
track();
return v;
},
set(f) {
console.log(111, f);
v = f;
trigger();
},
};
});
}
let keyWords = myRef("hello");