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

Uni-app条件编译(// #ifndef APP)

			click() {// #ifndef APPuni.showToast({title: '请在APP上使用',icon: 'none'})return// #endif// #ifdef APP-PLUSthis.showBarButton(true)this.$refs.hgQrCode.scanplus()// #endif},

这里的“//”一开以为就是注释的意思,但后来发现并不是!

首先这段代码的功能是,用户点击按钮,若如果不是APP平台(包括H5、各种小程序、快应用等所有非APP环境),则显示'请在APP上使用'。若是在app上就执行下面扫码功能代码。

条件编译指令#ifndef#ifdef)是在代码打包编译时生效的,不是运行时判断。它们像一把剪刀,把不需要的代码直接剪掉。


APP平台编译后的实际代码

当你打包成 APP 时,编译器处理后的真实代码是这样的:

click() {// 非APP代码被完全删除// #ifndef APP// ...整段消失// #endif// #ifdef APP-PLUSthis.showBarButton(true)this.$refs.hgQrCode.scanplus()// #endif
},

根本没return语句,所以流程自然继续执行。


H5/小程序平台编译后的实际代码

当你打包成 H5小程序 时,编译器处理后的真实代码是这样的:

click() {// #ifndef APPuni.showToast({title: '请在APP上使用',icon: 'none'})return  // 这是平台内唯一的return,直接退出// #endif// APP代码被完全删除// #ifdef APP-PLUS// ...整段消失// #endif
},

没有后续代码需要执行,直接退出方法。


图示流程

源码 → [编译器判断平台] → 裁剪掉不符合的代码 → 生成平台专用代码 → 运行时执行

关键点:条件编译是编译期的代码物理删除,不是运行期的if/else逻辑判断。所以不会有"执行到return"再去判断平台的矛盾。

http://www.dtcms.com/a/594521.html

相关文章:

  • 做网站为什么很复杂建好网站是不是还得维护
  • 非专业人士可以做网站编辑的工作吗WordPress文章生成图片
  • 平凉市城乡建设局网站让别人访问自己做的网站
  • 企业经营异常信息查询接口分享、技术文档
  • seo网站分析报告网站分享的功能怎么做
  • idae快捷键
  • 推荐西安优秀的响应式网站建设公司教务管理系统下载
  • 企业部署智能决策系统成本高吗?
  • PCB之电源完整性之电源网络的PDN仿真CST---06
  • 搭建一个简单的springcloud服务
  • 重庆科技网站建设婚纱摄影哪家好
  • 不让Django DRF ListAPIView 类进行2次查询
  • HarmonyOS:弹性布局(Flex)
  • CANN在智能视频分析场景中的实践应用
  • 基于ESP32的宠物喂食小屋
  • 西昌有做网站的公司吗海南网站设计公司
  • Prometheus实战教程 - 服务发现
  • 卸载搜狗压缩软件
  • 企业网站制作免费下载效果图网站发帖平台
  • 做网站的时候用的什么框架app下载汅api免费下载大全视频
  • 鸿蒙应用开发之实现键值型数据库跨设备数据同步
  • 企业网站域名备案流程营销网红
  • 双擎驱动 AI 开发:智能体全流程评测 + 应用编排创新实践指南
  • 小杰-大模型(four)——RAG与Agent设计——Langchain-chain链
  • 吐鲁番大型网站建设平台素材库网站
  • mysql表的连接——内外连接
  • Java文件与IO流完全指南
  • 深圳建站公司兴田德润官网多少宁波网站推广建站
  • 学会网站建设能成为一项职业吗十大免费音乐网站
  • 零基础学JAVA--Day28(包装类+String类)