请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

initProxy的问题

图片描述请问老师,执行initproxy做代理是用vm.renderProxy接受的,常见的vue报属性未定义我看是在这里进行的,但我开发中没写过vm._renderProxy.属性,都是vm.属性才会报属性未定义,不太理解这个地方

正在回答

2回答

你不需要写呀,它本身就是一个 Proxy 代理,劫持 vm 属性访问用的

0 回复 有任何疑惑可以回复我~
  • 提问者 慕盖茨5496228 #1
    _renderProxy劫持vm属性又什么作用?还有就是再开发中用this.属性报的属性未定义这个警告是在这里产生的吗?
    回复 有任何疑惑可以回复我~ 2021-06-16 17:04:11
  • ustbhuangyi 回复 提问者 慕盖茨5496228 #2
    如你所说,比如在模板中访问了一个不存在的变量,那么就会报警告,可以看 warnNonPresent 的实现,而之所以能执行 warnNonPresent,就是劫持了 vm 的属性访问呀。
    回复 有任何疑惑可以回复我~ 2021-06-16 17:07:35
  • 提问者 慕盖茨5496228 回复 ustbhuangyi #3
    vnode = render.call(vm._renderProxy, vm.$createElement) 是这句让我写this.属性可以访问到data中的属性吗
    回复 有任何疑惑可以回复我~ 2021-06-16 17:36:31
ustbhuangyi 2021-06-17 11:23:02

https://img1.sycdn.imooc.com//szimg/60cac00809e476c122221110.jpg
看图,这个报错应该很熟悉吧

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信