当前位置: 首页 > news >正文

uni-app #ifdef #ifndef #endif的使用和区别

1. uni-app #ifdef #ifndef #endif的使用和区别

  条件编译是一种在编程中根据特定平台选择性编译代码的技术。如#ifdef和#endif根据APP-PLUS平台标识在微信小程序、支付宝小程序、百度小程序、头条小程序、QQ小程序以及H5应用中实现代码的平台特定执行。下面介绍了如何使用#ifdef和#ifndef等注释来标记代码块,确保它们在H5、5+App、微信小程序等不同平台上正确执行编译。通过这种方式,开发者可以实现代码的平台定制,提高代码的可移植性和效率。

1.1. #ifdef #ifndef #endif三者

  写法:以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。

名称作用
#ifdef仅在某个平台上使用0
#ifndef在除了这个平台的其他平台上使用(非此平台使用)
#endif结束条件编译

1.2. 平台标识

1.2.1. 生效条件

标识生效条件
VUE3uni-app js引擎版用于区分vue2和3,
VUE2uni-app js引擎版用于区分vue2和3
UNI-APP-X用于区分是否是uni-app x项目
uniVersion用于区分编译器的版本
APPApp
APP-PLUSuni-app js引擎版编译为App时
APP-PLUS-NVUE或APP-NVUEApp nvue 页面
APP-ANDROIDApp Android 平台 详情
APP-IOSApp iOS 平台 详情
H5H5(推荐使用 WEB)
WEBweb(同H5) HBuilderX 3.6.3+
MP-WEIXIN微信小程序
MP-ALIPAY支付宝小程序
MP-BAIDU百度小程序
MP-TOUTIAO抖音小程序
MP-LARK飞书小程序
MP-QQQQ小程序
MP-KUAISHOU快手小程序
MP-JD京东小程序
MP-360360小程序
MP微信小程序/支付宝小程序/百度小程序/抖音小程序/飞书小程序/QQ小程序/360小程序
QUICKAPP-WEBVIEW快应用通用(包含联盟、华为)
QUICKAPP-WEBVIEW-UNION快应用联盟
QUICKAPP-WEBVIEW-HUAWEI快应用华为

1.2.1. 支持的文件

(1).vue/.nvue/.uvue
(2).js/.uts
(3).css
(4)pages.json
(5)各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug

1.3. 案例

在这里插入图片描述

1.3.1. 示例页面

     <!-- h5显示 --><!-- #ifdef H5 --><view>H5</view><!-- #endif --><!-- 微信小程序显示 --><!-- #ifdef MP-WEIXIN --><view>小程序</view><!-- #endif --><!-- #ifndef H5 --><view class="else">除了h5都展示</view><!-- #endif -->

1.3.2. 示例方法

	onLoad() {// #ifdef H5console.log('H5')// #endif// #ifdef MP-WEIXINconsole.log('小程序')// #endif}

相关文章:

  • 【架构】NewSQL
  • 去中心化自治组织(DAO)
  • [Python学习日记-34] 一篇文章让你弄懂 Python 中牛逼的递归函数
  • 【前端安全】js逆向之微信公众号登录密码
  • Golang | Leetcode Golang题解之第440题字典序的第K小数字
  • java-快速将普通main类变为javafx类,并加载自定义fxml
  • go 安装三方库
  • Unity开发绘画板——01.前言
  • C++之String类(下)
  • TypeScript 算法手册【插入排序】
  • 五、CAN总线
  • 《NoSQL》非关系型数据库MongoDB 学习笔记!
  • 2024年3分钟手把手教你激活Guitar Pro 8破解版
  • 工业现场干扰问题及处理方法
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树
  • Android系统模拟器绘制实现概述
  • CSS魔法堂:Absolute Positioning就这个样
  • Git 使用集
  • Javascript弹出层-初探
  • Javascript设计模式学习之Observer(观察者)模式
  • JSDuck 与 AngularJS 融合技巧
  • MaxCompute访问TableStore(OTS) 数据
  • pdf文件如何在线转换为jpg图片
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 成为一名优秀的Developer的书单
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 给初学者:JavaScript 中数组操作注意点
  • 基于Android乐音识别(2)
  • 目录与文件属性:编写ls
  • 前端相关框架总和
  • 人脸识别最新开发经验demo
  • 使用Gradle第一次构建Java程序
  • 一份游戏开发学习路线
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • python最赚钱的4个方向,你最心动的是哪个?
  • 阿里云ACE认证学习知识点梳理
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (+4)2.2UML建模图
  • (03)光刻——半导体电路的绘制
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (web自动化测试+python)1
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (四)Linux Shell编程——输入输出重定向
  • (算法)前K大的和
  • (一)插入排序
  • .“空心村”成因分析及解决对策122344
  • .apk文件,IIS不支持下载解决
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 简单实现MD5