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 实现,性能更快。
同时也支持条件编译,可以指定代码至编译到特定的终端平台。