接上回说到,我们已经实现了h方法和createVnode方法,那么我们目前已经可以拿到处理后的虚拟dom和用户传入的renderOptions,接下来我就开始进行渲染
在runtime-core模块下的renderer.ts中我现在来着重写render方法
- 如果拿到vnode是空的话,说明是一个卸载逻辑
- 如果vnode不是空,那就是一个挂载逻辑
- 调用patch方法,容器上的_vode保存上次的vnode
patch方法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AYuTGIki-1655790599009)(https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/93c6d276a5b1438787a62b40fc4a31ef~tplv-k3u1fbpfcp-zoom-in-crop-mark:1956:0:0:0.image?)]