条件编译了解
前言:
由于本次业务有 PC 端H5 页面,还有 手机端的H5页面,不同的端,模块展示可能不同,但是大部分功能又是相同的。
如果通过简单的 if…else… 判断不同端,调用相应的 API 或 展示相应的模块,那随着时间和业务的发展,终有一天会造成代码混乱,不好维护。
最重要的一点是在某特定的端上,存在大量的其他端的冗余代码,会增加文件体积,影响加载速度以及性能。
最好的方式就是可以根据端,打包出的代码只有和这个端有关系的代码,无其他冗余代码,这样干净也便于以后的维护。
这样就想到了 条件编译 。 uni-app 跨段框架就使用了 条件编译 。
条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同的平台。
写法
以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。
- #ifdef:if defined 仅在某平台存在
- #ifndef:if not defined 除了某平台均存在
- %PLATFORM%:平台名称
%PLATFORM% 可取值如下:
值 | 生效条件 |
---|---|
VUE3 | HBuilderX 3.2.0+ 详情 |
APP-PLUS | App |
APP-PLUS-NVUE或APP-NVUE | App nvue |
H5 | H5 |
MP-WEIXIN | 微信小程序 |
支持的文件
- .vue
- .js
- .css
- pages.json
- 各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug