最近写大屏项目时需同时兼容5+App与H5,用到了uniapp中的条件编译, 5+App与H5的不管是样式还是js中图表样式差距还是很大,根据项目需求可以用到条件编译来实现多端开发从而达到需求。
1. uniapp中 #ifdef、 #ifndef、 #endif三者的意思
属性 | 作用 |
---|
#ifdef | 仅在某个平台上使用 |
#ifndef | 在除了这个平台的其他平台上使用(非此平台使用) |
#endif | 结束条件编译 |
2. 各端的标识意思
标识 | 平台 |
---|
APP-PLUS | 5+App |
H5 | H5 |
MP-WEIXIN | 微信小程序 |
MP | 微信小程序/支付宝小程序/百度小程序/头条小程序/QQ小程序 |
MP-ALIPAY | 支付宝小程序 |
MP-BAIDU | 百度小程序 |
MP-TOUTIAO | 头条小程序 |
MP-QQ | QQ小程序 |
APP-PLUS-NVUE | 5+App nvue |
3. 项目中使用场景
- css中
// #ifdef H5
padding: 80px 0 0 5px;
// #endif
// #ifndef H5
//或者直接写 //#ifdef APP-PLUS
padding: calc(100vw*90/1920) 0 0 calc(100vw*5/1920);
// #endif
- js使用
legend: {
orient: "vertical",
top: "center",
left: "30%",
itemGap: nowSize(12),
icon: "circle",
textStyle: {
color: "#fff",
fontSize: nowSize(18)
},
left: "60%",
itemGap: 5,
icon: "circle",
itemStyle: {
borderColor: 'transparent',
fontSize: 12
},
....
注意:条件编译前面的 // 是必须加的