props也和data一样做了一层代理,实际上的props时挂载到_props
上的
function proxy(target, sourceKey, key) {
Object.defineProperty(taget, key, {
get() {
return target[sourceKey][key];
},
set(val) {
target[sourceKey][key] = val;
}
})
}
经过上面的转换,我们就可以直接通过this.xxx
访问到我们所需要访问的props了
props也会设置成响应式,但是,如果某个props为对象,是不会对这个对象进行深度遍历来设置响应式的。
当props是基本类型和对象时,这两者的响应式还有点不同
- 对于基本类型,这个prop会在子组件上设置响应式,跟data本质一样,作用时监听props的修改。
- 对于对象,这个prop也会在子组件上设置响应式,作用也是监听props的修改,但是props不会递归的设置响应式