Uni-app已经将常用组件和JS API封装到框架中。开发者按照uni-app规范开发,可以保证多平台兼容,大部分服务可以直接满足。
但是每个平台都有自己的特点,所以会出现一些无法跨平台的情况。
写很多if else会导致代码执行性能低下,管理混乱。编译到不同的项目,修改两次,会让后续的升级非常麻烦。在C语言中,通过#ifdef和#ifndef为不同的os(如windows和mac)编译不同的代码。参考这一思路,uni-app为uni-app提供了条件编译手段,优雅地在一个项目中完成了平台的个性化实现。
使用条件编译:'s特殊注释作为标记,在编译时根据这些特殊注释将注释中的代码编译到不同的平台。
以写法:# ifdef或#ifndef加 %PLATFORM%开头,以#endif结尾。
# ifdef: ifdefined只存在于某个平台# ifndef: ifnotdefined存在于除某个平台之外的所有平台。%PLATFORM%:平台名称%PLATFORM%,可取值如下:
比如3360
#伊夫 APP-PLUS
要有条件编译的代码
#endif
不同平台的独特功能,以及小程序平台的分包,都可以通过pages.json的条件编译来更好的实现,这样在其他平台上就不会产生冗余资源,从而减少包的大小。
如果不同平台的密钥名称相同,开发者在cli项目下安装的验证器会报错,所以需要关闭这些验证器对json相同密钥的验证规则。如果使用HBuilderX的checker,就不用担心这个问题了。HBuilderX的语法检查器已经为此进行了优化。
知识在线,一起讨论,一起搬砖,快乐人生,苦尽甘来。
喜欢就关注我!喜欢就关注我!喜欢就关注我。