没太明白 render 函数这个定义 渲染的时候 给 vnode 就好了 那 删除直接 给null就知道 删的谁吗

来源:12-5 通用组件:方法触发 message 展示

Muddyrain

2022-11-02

图片描述

写回答

1回答

Sunday

2022-11-02

你好

这个想要解释可能需要根据 vue 3 的 render 函数源码实现进行解释了。

//img.mukewang.com/szimg/636210af09ba612825480866.jpg

以上截图为 vue 3.2.37 的源码 render 函数截图,从该截图中可以看到当 vnode 为 null 时,会执行 unmount(卸载)函数,该函数会卸载 container._vnode (上次挂载的 vnode),从而达到删除旧节点的效果。

1
2
Sunday
回复
Muddyrain
它的卸载是以 container 对象为核心的卸载,也就是说只需要维护 一个 container 挂载一个 vnode 的场景,那么就不会出现错误销毁的情况。
2022-11-02
共2条回复

基于 Vue3 ,打造前台+中台通用开发提效解决方案

42 种前台常见业务模型, 15 种中台通用组件,成为前端提效高手

788 学习 · 517 问题

查看课程