uni-app
能实现一套代码、多端运行,核心是通过编译器 + 运行时
实现的:
uni-app
统一代码编译生成每个平台支持的特有代码;如在小程序平台,编译器将.vue
文件拆分生成wxml
、wxss
、js
等代码。uni-app
项目根据所依赖的Vue
版本不同,编译器的实现也不同:
uni-app
编译器基于wepback实现uni-app
编译器基于Vite实现,编译速度更快,详见:vue3和vite双向加持,uni-app性能再次提升 (opens new window)uni-app
项目根据创建方式的不同,编译器在使用上也有差异:
cli
方式创建的项目,编译器安装在项目下。编译器不会跟随HBuilderX
升级。如需升级编译器,可以使用 @dcloudio/uvm
管理编译器的版本,如 npx @dcloudio/uvm
。HBuilderX
可视化界面创建的项目,编译器在HBuilderX
的安装目录下的plugin
目录,随着HBuilderX
的升级会自动升级编译器。cli
创建的项目,如果想继续在HBuilderX
里使用,可以把工程拖到HBuilderX
中。注意如果是把整个项目拖入HBuilderX
,则编译时走的是项目下的编译器。如果是把src目录拖入到HBuilderX
中,则走的是HBuilderX
安装目录下plugin
目录下的编译器。