uni-app 里的#ifdef MP是什么意思?条件编译
#ifdef #ifndef #endif
标准的语法
// #ifdef %PLATFORM%
%PLATFORM%为平台名称
这里的内容只会编译在该平台
// #endif
可以看到其实以#ifdef开头 #endif结尾,但是注意一下就会发现前面双斜杠,这里是注释标记
也就是说在各个代码块里的注释不一样,注释标记就要切换掉,比如
js: // #ifdef
tag标签: <!-- #ifdef -->
css样式: /* #ifdef */
解释一下语句是什么意思
#ifdef : if defined 仅在某个平台编译
#ifndef : if not defined 在除里该平台的其他编译
#endif : end if 结束条件编译
%PLATFORM% 需要编译的平台,上面的MP就是各个小程序的意思
111uni-app支持的各个平台(下面官网copy过来的)
值 | 平台 | 参考文档 |
---|---|---|
APP-PLUS | 5+App | HTML5+ 规范 |
APP-PLUS-NVUE | 5+App nvue | Weex 规范 |
H5 | H5 | |
MP-WEIXIN | 微信小程序 | 微信小程序 |
MP-ALIPAY | 支付宝小程序 | 支付宝小程序 |
MP-BAIDU | 百度小程序 | 百度小程序 |
MP-TOUTIAO | 头条小程序 | 头条小程序 |
MP-QQ | QQ小程序 | (目前仅cli版支持) |
MP | 微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序 |
示例 如果只需要在微信小程序上编译某段代码的话
// #ifdef MP-WEIXIN
我是那个代码
// #endif
例如我从源码中拷贝出来的:
<!-- 小程序头部兼容 -->
<!-- #ifdef MP -->
<view class="mp-search-box">
<input class="ser-input" type="text" value="输入关键字搜索" disabled />
</view>
<!-- #endif -->