uniapp使用條件編譯#ifdef(跨平臺(tái)設(shè)備兼容)
uni-app 已將常用的組件、JS API 封裝到框架中,開(kāi)發(fā)者按照 uni-app 規(guī)范開(kāi)發(fā)即可保證多平臺(tái)兼容,大部分業(yè)務(wù)均可直接滿足。
但每個(gè)平臺(tái)有自己的一些特性,因此會(huì)存在一些無(wú)法跨平臺(tái)的情況。
大量寫(xiě) if else,會(huì)造成代碼執(zhí)行性能低下和管理混亂。
編譯到不同的工程后二次修改,會(huì)讓后續(xù)升級(jí)變的很麻煩。
在 C 語(yǔ)言中,通過(guò) #ifdef、#ifndef的方式,為 windows、mac等不同 os 編譯不同的代碼。 uni-app 參考這個(gè)思路,為 uni-app 提供了條件編譯手段,在一個(gè)工程里優(yōu)雅的完成了平臺(tái)個(gè)性化實(shí)現(xiàn)。
條件編譯
官方文檔:https://uniapp.dcloud.io/platform條件編譯是用特殊的注釋作為標(biāo)記,在編譯時(shí)根據(jù)這些特殊的注釋?zhuān)瑢⒆⑨尷锩娴拇a編譯到不同平臺(tái)。
常用寫(xiě)法:
以#ifdef或 #ifndef加%PLATFORM%開(kāi)頭,以 #endif結(jié)尾。
css樣式
/* #ifdef APP-PLUS */ width: 60upx; height: 60upx; /* #endif */
html標(biāo)簽
/* #ifdef APP-PLUS */ <button type="default"></button> /* #endif */
js函數(shù)
change() {
// #ifdef APP-PLUS
statusbarHeight = plus.navigator.getStatusbarHeight()
// #endif
}
擴(kuò)展
#ifdef:if defined 僅在某平臺(tái)存在;#ifndef:if not defined 除了某平臺(tái)均存在;%PLATFORM%:平臺(tái)名稱(chēng)寫(xiě)法如下:

支持:
- .vue
- .js
- .css
- pages.json
- 各預(yù)編譯語(yǔ)言文件,如:.scss、.less、.stylus、.ts、.pug
注意:: 條件編譯是利用注釋實(shí)現(xiàn)的,在不同語(yǔ)法里注釋寫(xiě)法不一樣,js使用 // 注釋、css 使用 /* 注釋 */、vue/nvue 模板里使用 ;
以上就是uniapp使用條件編譯#ifdef(跨平臺(tái)設(shè)備兼容)的詳細(xì)內(nèi)容,更多關(guān)于uniapp使用條件編譯#ifdef(跨平臺(tái)設(shè)備兼容)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- uniapp使用高德地圖的超詳細(xì)步驟
- uniapp實(shí)現(xiàn)h5、app與微信小程序三端pdf文件下載和預(yù)覽功能
- uniapp微信小程序打卡功能的詳細(xì)實(shí)現(xiàn)流程
- 手把手教你寫(xiě)一個(gè)uniapp通用頁(yè)面組件
- uniapp頁(yè)面間傳參的幾種方法實(shí)例總結(jié)
- uniapp開(kāi)發(fā)打包多端應(yīng)用完整方法指南
- uniapp打包安卓App的兩種方式(云打包、本地打包)方法詳解
- 使用uniapp打包上架微信小程序完整教程
- uniApp微信小程序使用騰訊地圖定位功能及getLocation需要在app.json中聲明permission字段問(wèn)題解決
- uniapp語(yǔ)音識(shí)別(訊飛語(yǔ)音)轉(zhuǎn)文字
相關(guān)文章
詳解vue.js移動(dòng)端導(dǎo)航navigationbar的封裝
本篇文章主要介紹了vue.js移動(dòng)端導(dǎo)航navigationbar的封裝,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07
vue-cli腳手架初始化項(xiàng)目各個(gè)文件夾用途
這篇文章主要介紹了vue-cli腳手架初始化項(xiàng)目各個(gè)文件夾用途,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
Vue.js中NaiveUI組件文字漸變的實(shí)現(xiàn)
這篇文章主要介紹了Vue.js中NaiveUI組件文字漸變的實(shí)現(xiàn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-07-07
vue中實(shí)現(xiàn)點(diǎn)擊按鈕滾動(dòng)到頁(yè)面對(duì)應(yīng)位置的方法(使用c3平滑屬性實(shí)現(xiàn))
這篇文章主要介紹了vue中實(shí)現(xiàn)點(diǎn)擊按鈕滾動(dòng)到頁(yè)面對(duì)應(yīng)位置的方法,這段代碼主要使用c3平滑屬性實(shí)現(xiàn),需要的朋友可以參考下2019-12-12
Vue2中compiler和runtime模式報(bào)錯(cuò)template compiler is 
本文主要介紹了Vue2中compiler和runtime模式報(bào)錯(cuò)template compiler is not available,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Vue 簡(jiǎn)單實(shí)現(xiàn)前端權(quán)限控制的示例
這篇文章主要介紹了Vue 簡(jiǎn)單實(shí)現(xiàn)前端權(quán)限控制的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Vue入口文件index.html緩存的問(wèn)題及解決
這篇文章主要介紹了Vue入口文件index.html緩存的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03

