uniapp使用条件编译#ifdef(跨平台设备兼容)

 更新时间:2022年12月24日 15:11:00   作者:约妲己吃火锅  
这篇文章主要介绍了uniapp使用条件编译#ifdef(跨平台设备兼容),需要的朋友可以参考下

uni-app 已将常用的组件、JS API 封装到框架中,开发者按照 uni-app 规范开发即可保证多平台兼容,大部分业务均可直接满足。

但每个平台有自己的一些特性,因此会存在一些无法跨平台的情况。

大量写 if else,会造成代码执行性能低下和管理混乱。

编译到不同的工程后二次修改,会让后续升级变的很麻烦。

在 C 语言中,通过 #ifdef、#ifndef的方式,为 windows、mac等不同 os 编译不同的代码。 uni-app 参考这个思路,为 uni-app 提供了条件编译手段,在一个工程里优雅的完成了平台个性化实现。

条件编译

官方文档:https://uniapp.dcloud.io/platform条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。

常用写法:

#ifdef或 #ifndef%PLATFORM%开头,以 #endif结尾。

css样式

/*  #ifdef  APP-PLUS  */
width: 60upx;
height: 60upx;
/*  #endif  */

html标签

/*  #ifdef  APP-PLUS  */
<button type="default"></button>
/*  #endif  */

js函数

change() {
	// #ifdef APP-PLUS
	statusbarHeight = plus.navigator.getStatusbarHeight()
	// #endif
}

扩展

#ifdef:if defined 仅在某平台存在;
#ifndef:if not defined 除了某平台均存在;
%PLATFORM%:平台名称写法如下:

在这里插入图片描述

支持:

  • .vue
  • .js
  • .css
  • pages.json
  • 各预编译语言文件,如:.scss、.less、.stylus、.ts、.pug

注意:: 条件编译是利用注释实现的,在不同语法里注释写法不一样,js使用 // 注释、css 使用 /* 注释 */、vue/nvue 模板里使用 ;

以上就是uniapp使用条件编译#ifdef(跨平台设备兼容)的详细内容,更多关于uniapp使用条件编译#ifdef(跨平台设备兼容)的资料请关注脚本之家其它相关文章!

相关文章

  • vue中el-cascader三级联动懒加载回显问题解决

    vue中el-cascader三级联动懒加载回显问题解决

    本文主要介绍了vue中el-cascader三级联动懒加载回显问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • react+vite动态导入报错@vite-ignore的问题及解决

    react+vite动态导入报错@vite-ignore的问题及解决

    这篇文章主要介绍了react+vite动态导入报错@vite-ignore的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • Nuxt.js SSR与权限验证的实现

    Nuxt.js SSR与权限验证的实现

    这篇文章主要介绍了Nuxt.js SSR与权限验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Vue.js实现的计算器功能完整示例

    Vue.js实现的计算器功能完整示例

    这篇文章主要介绍了Vue.js实现的计算器功能,结合完整实例形式分析了vue.js响应鼠标事件实现基本的数值运算相关操作技巧,可实现四则运算及乘方、开方等功能,需要的朋友可以参考下
    2018-07-07
  • 手把手搭建安装基于windows的Vue.js运行环境

    手把手搭建安装基于windows的Vue.js运行环境

    手把手教大家搭建安装基于windows的Vue.js的运行环境,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • vue单页面如何设置高度100%全屏

    vue单页面如何设置高度100%全屏

    这篇文章主要介绍了vue单页面如何设置高度100%全屏,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • 使用Vue-neo4j实现绘制三国人物图谱关系

    使用Vue-neo4j实现绘制三国人物图谱关系

    这篇文章主要介绍了使用Vue-neo4j实现绘制三国人物图谱关系,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • vue项目使用$router.go(-1)返回时刷新原来的界面操作

    vue项目使用$router.go(-1)返回时刷新原来的界面操作

    这篇文章主要介绍了vue项目使用$router.go(-1)返回时刷新原来的界面操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Vue3实现自定义指令拦截点击事件的示例代码

    Vue3实现自定义指令拦截点击事件的示例代码

    某些应用场景会给点击事件添加权限,不存在权限就拦截点击事件,有权限就继续正常触发点击事件。这样的效果是如何实现的呢,本文就来和大家详细讲讲
    2023-02-02
  • Vue中的this.$options.data()和this.$data用法说明

    Vue中的this.$options.data()和this.$data用法说明

    这篇文章主要介绍了Vue中的this.$options.data()和this.$data用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07

最新评论