- uni-app 分 编译器和运行时(runtime),实现一套代码,多端运行主要是这两部分配合完成的, 编译器将开发者的代码进行编译,编译的输出物由每个平台各自的runtime进行解析。每个平台(Web、Android App、iOS App、各家小程序)都有各自的runtime。
编译器
- 编译器运行在电脑开发环境。一般是内置在HBuilderX工具中,也可以使用独立的cli版。
- 开发者按uni-app规范编写代码,由编译器将开发者的代码编译生成每个平台支持的特有代码
- 在web平台,将.vue文件编译为js代码。与普通的vue cli项目类似
- 在微信小程序平台,编译器将.vue文件拆分生成wxml、wxss、js等代码
- 在app平台,将.vue文件编译为js代码。进一步,如果涉及uts代码:
- 在Android平台,将.uts文件编译为kotlin代码
- 在iOS平台,将.uts文件编译为swift代码
- 编译器分vue2版和vue3版
- vue2版:基于
webpack
实现 - vue3版:基于
Vite
实现,性能更快
- vue2版:基于
- 编译器支持条件编译,即可以指定某部分代码只编译到特定的终端平台。从而将公用和个性化融合在一个工程中。
运行时(runtime)
runtime不是运行在电脑开