uni-app的跨端原理与特定编译

1,585 阅读1分钟

uni-app 跨端原理

uni-app 分 编译器和运行时(runtime),实现一套代码,多端运行主要是这两部分配合完成的, 编译器将开发者的代码进行编译,编译的输出物由每个平台各自的runtime进行解析。

那么在不同平台上的runtime是如何转义的?

  • 小程序端,使用小程序版的vue runtime ,页面路由,组件,api 等方面基本都是转义。
  • web 端,uni-app的runtime 相比普通的vue项目,多一套ui库,页面路由框架,uni对象。
  • App 端,uni-app的 runtime 更复杂,DCloud 有一套小程序引擎,打包app时将开发者的代码和DCloud 的小程序打包成apk或ipa

runtime 它不是运行在电脑的开发环境上,而是运行在真正的终端上。uni-app在每个平台都有各自的 runtime ,主要包括三部分:基础框架,组件,API。

uni-app 的编译器是如何特定编译的?

在 web、app平台,将.vue 文件 编译成 js 代码,小程序则拆分shengchengwx,l,wxss ,js等 ,如果涉及uts代码,安卓编译为kotlin代码,ios 编译成swift 代码。

vue2版本的编译器基于 webpack 实现,vue3通过 vite 实现,性能更快。

同时也支持条件编译,可以指定代码至编译到特定的终端平台。