Vue2 源码里 patchVnode 旧节点有 text ,无新节点的情况?-灵析社区

莫克先森

Vue2.6.14 源码 core/vdom/patch.js 文件里 patchVnode 方法中,五种新旧节点比较的情况,其中一种旧节点有 text ,无新节点的情况,我无法模拟出具体的应用场景,请教下各位。 // 省去了部分代码 function patchVnode(oldVnode, vnode) { if (isUndef(vnode.text)) { if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, '') } } } 比如这个例子, {{name}} name 从有值到为空的情况,这匹配到的是 if (oldVnode.text !== vnode.text) { nodeOps.setTextContent(elm, vnode.text) }

阅读量:359

点赞量:14

问AI
今天吃什么你说吧
"isUndef(vnode.text)"的主要目的不是判断文本内容是不是空,而是为了判断是不是文本节点,包括后面判断不是文本节点的话有没有子元素 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250109/a43708f7e9745cdfafd7b92a8b1c8d23.png)