原文:https://juejin.im/post/5d977f47e51d4578453274b3
兼容性
目前打包后的代码是 ES2015+,不支持 IE 11。
对 TypeScript 的使用
目前的代码 98% 以上使用 TypeScript 编写。
如果你还没有学习 TypeScript,请尽快学习,否则可能看不懂源码。
另外有件事情说出来可能会让你非常惊讶,Vue 3 的源代码完全没有使用 class 关键字!(只在测试代码和示例代码里用到了 class 关键字)
什么时候发正式版
目前 Vue 3 处于 Pre-Alpha 版本。后面应该还会有 Alpha、Beta 等版本。
根据 Vue 官方时间表,至少要等到 2020 年第一季度才有可能发布 3.0 正式版。
代码结构
代码仓库中有个 packages 目录,里面是 Vue 3 的主要功能的实现,包括
reactivity 目录:数据响应式系统,这是一个单独的系统,可以与任何框架配合使用。
runtime-core 目录:与平台无关的运行时。其实现的功能有虚拟 DOM 渲染器、Vue 组件和 Vue 的各种API,我们可以利用这个 runtime 实现针对某个具体平台的高阶 runtime,比如自定义渲染器。
runtime-dom 目录: 针对浏览器的 runtime。其功能包括处理原生 DOM API、DOM 事件和 DOM 属性等。
runtime-test 目录: 一个专门为了测试而写的轻量级 runtime。由于这个 rumtime 「渲染」出的 DOM 树其实是一个 JS 对象,所以这个 runtime 可以用在所有 JS 环境里。你可以用它来测试渲染是否正确。它还可以用于序列化 DOM、触发 DOM 事件,以及记录某次更新中的 DOM 操作。
server-renderer 目录: 用于 SSR。尚未实现。