好像找不到比我讲的更全的了

206 阅读3分钟
原文链接: zhuanlan.zhihu.com

今天发布了关于《渲染器》的一套文章,除了异步渲染相关的内容没讲之外,渲染器相关的东西应该都挺全的了。先看一下目录吧:

这套文章主要讲述了:从设计 VNode 开始,到使用 VNode 描述各种各样的内容,如元素、组件、Fragment、Portal 等等,一直到使用三种核心Diff算法(React/snabbdom/inferno),其中包含了 VNode flags 相关的内容,inferno 中如何求最长递增子序列以及它在 Diff 算法中如何起作用的。当然啦,也包含自定义渲染器的原理和应用。我在每一个小节都提供了可在线运行的例子,代码都在 codesandbox 上,文章里会有链接。

说说原因:其实,我原本在写 Vue3.0 相关的文章,然而大家都知道前段时间 Vue3 抛弃了 Class API,我有很多内容其实是”白写了“。于是我把已经完成的文章整理了一下,将涉及到敏感信息的部分去掉,尊重 Vue3 的”知识产权“,毕竟 Vue3 还没发布。最后就整理出了《渲染器》。

很荣幸,去年尤雨溪在 GitHub 上给我发了一个邀请,成为了 vue3 的 Collaborator,因此得以能够提前了解 Vue3 的设计。但是有一点我需要澄清:我虽然是 Collaborator ,但我本人代表不了 Vue 团队中那些核心成员的水平,我只是一个普通的开发者。被邀请的原因也许是我一直在想着为 Vue 社区做贡献吧(虽然也没啥贡献......),毕竟没有功劳也有苦劳,谢谢您嘞各位,不过我还是要打打广告:

  • vuese 是我开发的一个通过静态分析 Vue 文件为你生成文档的工具:
vuese/vuese
  • 你还可以通过 vuese-explorer 在线体验
  • vue-suspense 是我还在开发中、探索中的项目,如果你了解 React Suspense 的话,我就不解释了:
shuidi-fed/vue-suspense
  • vsr 是一个 Vue 的 SSR 框架,很多灵感来自于 ream,其实我和 ream 的作者 @egoist 有聊过相关的设计,等我把文档翻译一下再开源。而且我在开发 vue-suspense 的过程中貌似发现了一种新的在 SSR 中预取数据的方式,当然我还需要尝试,还不知道结果如何,来个截图吧:

广告到这里就算结束了,我得把《渲染器》这套文章的地址贴出来了:

hcysun.me/vue-design/…

《渲染器》这套文章不是源码分析。现在提到源码分析我也是觉得挺 low 的,没办法,每年看去年写的文章都觉得很幼稚。

其实我在想法里面发过很多这套文章中的截图,例如:

这套文章图片多应该是最大的特点,配合在线可运行的 demo 和代码应该很好理解。最终要的是,我还是不要钱啊,免费啊。但别觉得免费的没好东西,您各位自己去点一点侧边栏的链接感受一下内容,评论权还在你们。

最后,等 Vue3 发布之后,我会陆续在下面这个专栏发文,感兴趣的可以关注一下水滴前端:

水滴前端

结语:不偷、不抢、不喷、不杠,安安心心写点代码,一点点努力,然后想办法为自己发自内心喜欢的技术加把劲。但你说我不为名不为利,那为什么呢?所以您各位如果觉得《渲染器》这套文章对您有用,望不吝:这里我就不贴捐赠的二维码啦,文章的首页有。