uni-app官方文檔傳送門:條件編譯(點我)
相信很多剛接觸uni-app的童鞋都不太喜歡先看完整官方文檔。總會碰到很多不懂的地方第一時間上網搜答案,就比如在uni-app模版看到的#ifdef MP,這是什么鬼?
對於學過C語言的童鞋並不陌生,因為這是條件編譯語句
為什么會出現在uni-app里呢?因為uni-app的特性—一份代碼,多平台運行。沒錯,就是一套代碼,可以在android ios 各個小程序和h5上運行,因此為了代碼簡潔性引入的條件編譯,
#ifdef #ifndef #endif(其實官網介紹的也很詳細)
標准的語法
// #ifdef %PLATFORM%
%PLATFORM%為平台名稱
這里的內容只會編譯在該平台
// #endif
可以看到其實以#ifdef開頭 #endif結尾,但是注意一下就會發現前面雙斜杠,這里是注釋標記
也就是說在各個代碼塊里的注釋不一樣,注釋標記就要切換掉,比如
js: // #ifdef
tag標簽: <!-- #ifdef -->
css樣式: /* #ifdef */
解釋一下語句是什么意思
#ifdef : if defined 僅在某個平台編譯
#ifndef : if not defined 在除里該平台的其他編譯
#endif : end if 結束條件編譯
%PLATFORM% 需要編譯的平台,上面的MP就是各個小程序的意思
uni-app支持的各個平台(官網說明)
示例 如果只需要在微信小程序上編譯某段代碼的話
// #ifdef MP-WEIXIN
我是那個代碼
// #endif
