[AppleScript] 纯文本查看 复制代码
function patch(oldVnode, vnode) {
// 对比是否相等
if (sameVnode(oldVnode, vnode)) {
patchVnode(oldVnode, vnode)
} else {
const oEl = oldVnode.el // 当前oldVnode对应的真实元素节点
let parentEle = api.parentNode(oEl) // 父元素
createELe(vnode) // 为vnode生成新的元素
if (parentEle !== null) {
api.insertBefore(parentEle, vnode.el, api.nextSibling(oEl)) // 将新的元素添加到父元素中
api.removeChild(parentEle, oldVnode.el) // 移除以前的元素
}
}
return vnode
}[AppleScript] 纯文本查看 复制代码
function sameVnode(a, b) {
return (
a.key === b.key && // 对比key
a.tag === b.tag && // 对比标签名
a.isComment === b.isComment && // 是否为注释节点
isDef(a.data) === isDef(b.data) && // 是否定义了data,或者其他属性
sameInputType(a, b) //判断是当<Input>时 是否type相同
)
}