今天再看vue社区的时候发现这样一句话
提示:provideinject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的 property 还是可响应的。
(ps: 链接 https://cn.vuejs.org/v2/api/#...
有点冲突的意味是不是,既然并不是可响应的那为什么传入可监听的对象,还是可响应的?
抱着这个疑惑,开始了求证
首先什么是 injectprovide 这里官方给出了这样一句话,
以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。
那我们就返回到
提示:provideinject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的 property 还是可响应的。
对这句话的理解上了,为什么官方要用这么矛盾的话来解释这两个属性呢?直接上源码:
image.png
在进行方法使用之前,vue会设置 toggleObserving(false),告诉代码,我这个只是需要添加一个键值对而不需要添加对象内容进去,那这个时候大家就知道 这个时候给过来的对象格式数据存储的是指针而不是数据。
ps: 之后测试的时候 vue+ts 测试,数组和对象好像是可以正常的响应变化==emmmmmmm 求大家告诉为啥
参考:https://vue-js.com/learn-vue/...


白白
1 声望0 粉丝