如今使用
uni-app
來開發的人愈來愈多。是否是許多同窗,準備入坑uni-app
,卻無從下手?文檔內容太多,不知道怎麼看? 若是有此疑問, 那麼我將帶你從零開始入坑uni-app
。css
uni-app
是一個使用 Vue.js
開發跨平臺應用的前端框架,開發者編寫一套代碼,可編譯到iOS
、Android
、H5
、小程序等多個平臺。 詳情點擊 uni-app 官方文檔uni-app
在跨端數量、擴展能力、性能體驗、周邊生態、學習成本、開發成本等6大關鍵指標上擁有極強的競爭優點:不要認爲 uni-app
能夠跨多端,就感受開發難度會直線上升。若是說,你開發太小程序,剛好又會 vue
, 那麼你的學習成本會很是的低。html
若是你原生小程序與 vue
都沒有接觸過的話,我建議你花一些時間,看一看他們的官方文檔。再回來學習 uni-app
。前端
開發 App 端的話,對於原生開發瞭解便可,不須要你有不少的原生開發經驗。vue
爲了更好的跨端開發, 參考 uni-app
統一規範:html5
Vue.js
規範,同時補充了App及頁面的生命週期使用官方推出的 HBuilderX
編輯器
可視化的方式比較簡單,HBuilderX
內置相關環境,開箱即用,無需配置node 。點擊下載node
幾乎全支持 Vue官方文檔:模板語法jquery
若是要開發小程序,咱們須要知道不一樣平臺下的小程序規範的 。規範瞭解以後,咱們開發起來就相對來講比較簡單一些。 uni-app
幫咱們把不一樣平臺的小程序 API
幾乎都封裝了 ,只須要將前綴替換爲 uni
便可 舉例說明:ios
咱們調用微信小程序的 request
請求小程序
wx.request({
url: 'https://www.example.com/request', //僅爲示例,並不是真實接口地址
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定義請求頭信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
複製代碼
咱們使用 uni-app
的 request
請求windows
uni.request({
url: 'https://www.example.com/request', //僅爲示例,並不是真實接口地址
data: {
text: 'uni.request'
},
header: {
'custom-header': 'hello' //自定義請求頭信息
},
success: (res) => {
console.log(res.data);
this.text = 'request success';
}
});
複製代碼
有沒有發現什麼不同的?因此除了前綴 wx
替換爲uni
以外,其餘與原規範機會保持一致。uni-app
會最大程度的抹平不一樣小程序平臺之間的差別。
uni-app
在 App
端不只可使用絕大多數的小程序相關的 API
,同時也可使用 5+API
很好的補足了小程序上一些尚未實現的功能。相關閱讀
同時,App
端內置 weex
引擎,提供了原生渲染能力。讓你 App 性能更好。相關閱讀
h5
基本上跟常規 vue
開發沒有什麼區別, 惟一須要注意的是,有些 API
是不能在 h5
中使用,注意文檔中標註的平臺差別說明。
雖然說是跨端,可是確定是有狀況是不支持的,好比遇到有些平臺特有的 API
怎麼辦 ?
不用擔憂,這些問題 uni-app
都爲你想到了,那就是使用條件編譯
。
詳細文檔點我 在 C
語言中,經過 #ifdef
、#ifndef
的方式,爲 windows
、mac
等不一樣 os
編譯不一樣的代碼 uni-app
參考這個思路,爲 uni-app
提供了條件編譯手段,在一個工程裏優雅的完成了平臺個性化實現 。
條件編譯是利用註釋實現的,在不一樣語法裏註釋寫法不同,js
使用 // 註釋
、css
使用 /* 註釋 */
、vue/nvue
模板裏使用 <!-- 註釋 -->
。
舉個例子:
// #ifdef %PLATFORM%
平臺特有的API實現
// #endif
// #ifndef H5
// 表示只有 h5 不使用這個 api
uni.createAnimation(OBJECT)
// #endif
複製代碼
<!-- #ifdef %PLATFORM% -->
平臺特有的組件
<!-- #endif -->
<!-- #ifdef MP-WEIXIN -->
<!-- 只在小程序中生效 -->
<view>我是微信小程序</view>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<!-- 只在 app 中生效 -->
<view>我是 app </view>
<!-- #endif -->
複製代碼
/* #ifdef %PLATFORM% */
平臺特有樣式
/* #endif */
/* #ifdef MP-WEIXIN */
/* 只在小程序中生效 */
.header {
color:red
}
/* #endif */
/* #ifdef APP-PLUS */
/* 只在 app 中生效 */
.header {
color:blue
}
<!-- #endif */
複製代碼
H5
端,不能使用瀏覽器自帶對象,好比 document
、window
、localstorage
、cookie
等,更不能使用 jquery
等依賴這些瀏覽器對象的框架。由於各家小程序快應用都不支持這些對象。沒有這些瀏覽器自帶對象並不影響業務開發,uni
提供的 api
足夠完成業務。uni-app
的 tag
同小程序的 tag
,和 HTML
的 tag
不同,好比 div
要改爲 view
,span
要改爲 text
、a
要改爲 navigator
。您對於 uni-app
有任何疑問,歡迎評論回覆,我看到的話,會第一時間回覆你,感謝。
Tips : 請理性對待,能夠不喜歡,可是不要噴。問題能夠討論,可是對噴子零容忍。