拉勾作业一

1、下面关于虚拟 DOM 的说法正确的是:D

2、下面关于 Snabbdom 库的描述错误的是:D

简答题

1、请简述 patchVnode 函数的执行过程。

1. 执行用户设置的prepatch钩子函数
2. 判断新老节点是否相同,相同则直接返还,不相同则继续执行
3. vnode如果定义了data, 执行模块和用户设置的钩子函数
4. 对比新旧节点
   + 如果vnode.text未定义
        - 如果新老子节点都有定义,对比新老子节点,不相同则更新子节点
        - 如果新子节点有定义而老子节点未定义
            + 老节点有text,清空dom内容
            + 批量添加子节点
        - 如果老子节点有定义,而新子节点未定义,批量移除子节点
        - 如果老节点有text属性,清空dom内容
   + 如果定义了vnode.text且oldVnode.text不等于它
        - 如果老节点有children,移除children,
        - 设置textCOntent为vnode.text

5. 执行用户设置的postpatch钩子函数
posted @ 2020-07-07 23:46  yeyexun  阅读(258)  评论(0)    收藏  举报