Vue3 相比于 Vue2 的有哪些“与众不同”( 五 )


import { nextTick } from 'vue'nextTick(() => {// 一些和DOM有关的东西})通过这一更改 , 只要模块绑定器支持tree-shaking , 则 Vue 应用程序中未使用的api将从最终的捆绑包中消除 , 获得最佳文件大小 。受此更改影响的全局API有如下 。

  • Vue.nextTick
  • Vue.observable (用 Vue.reactive 替换)
  • Vue.version
  • Vue.compile (仅全构建)
  • Vue.set (仅兼容构建)
  • Vue.delete (仅兼容构建)
内部 API 也有诸如 transition、v-model等标签或者指令被命名导出 。只有在程序真正使用才会被捆绑打包 。
根据 尤大 直播可以知道如今 Vue3 将所有运行功能打包也只有22.5kb , 比 Vue2 轻量很多 。
自定义渲染APIVue3 提供的createApp默认是将 template 映射成 html 。但若想生成canvas时 , 就需要使用custom renderer api自定义render生成函数 。
// 自定义runtime-render函数import { createApp } from './runtime-render'import App from './src/App'createApp(App).mount('#app')TypeScript 支持Vue3 由TS重写 , 相对于 Vue2 有更好地TypeScript支持 。
  • Vue2 Option API中 option 是个简单对象 , 而TS是一种类型系统 , 面向对象的语法 , 不是特别匹配 。
  • Vue2 需要vue-class-component强化vue原生组件 , 也需要vue-property-decorator增加更多结合Vue特性的装饰器 , 写法比较繁琐 。




推荐阅读