依赖收集问题
来源:4-5 依赖收集(上)

慕盖茨7486032
2021-07-15
{{ msg }}
msg: { play: { name: '123' }, hello: 'hellowold' } 老师,我直接在模板上输出msg对象,在依赖收集过程中, 为何会将msg的子元素也收集呢,在代码中也没看到相应的模块,写回答
1回答
-
ustbhuangyi
2021-07-15
因为插值最终编译会调用 _s 方法,比如模板:
<div id="app">{{ msg }}</div>
编译后会生成 render 函数function render() {
with(this) {
return _c('div', {
attrs: {
"id": "app"
}
}, [_v(_s(msg))])
}
}
这个 _s 方法在源码内部是 toString 方法
toString 定义如下
如果 val 是一个对象,那么会执行 JSON.stringify,所以子元素也被访问到了,触发了依赖收集00
相似问题