Vue 新版本根据 社区 的意见主要做了以下几点:
新版本重写了 VisualDOM,具体怎么工作可以看 这里 。
当 Vue 将模板编译为 render 函数时,会将模板中绑定数据的部分做上标记(Patch Flag);当数据变化时,Vue 将只关注会变化的部分。Vue 还引入了 HoistStatic,将模板中静态的部分抽离到 render 函数外部,提高性能。
在服务器渲染时,静态内容会被编译成字符串:
编译时,自动进行 useMemo 和 useCallback 优化:
Vue 本身支持了 TreeShaking,除了响应式系统和 diff 系统外,其他没用到的功能都可以在打包时剥离掉。
如果对兼容性没要求,甚至可以去掉对 Vue/2 的支持。
Vue 3.0 将同时支持 Options API 和 Composition API ,逻辑复用不再需要 mixin 了;代码逻辑会更加清晰,灵活性也会更高。
Vue 3.0 不再要求模板中必须要有根节点了,模板现在可以直接是一段文字或者多个节点,Vue 会将多个节点用 Fragment 包裹。
Vue 3.0 将为 IE11 建立专门的 build,开发者可以选择不同的版本;2.7 将会是 2.x 时代的最后一个版本,有 18 个月的支持期。