1. 程式人生 > 其它 >第二章Nginx伺服器的安裝、升級詳情

第二章Nginx伺服器的安裝、升級詳情

什麼是 uni-app

uni-app是一個使用vue的語法 + 微信小程式的標籤和API的跨平臺前端框架,開發者編寫一套程式碼,可編譯到iOS、Android、H5、小程式等多個平臺,幾乎覆蓋所有流量端。

uni-app 具有跨端數量更多、效能體驗更優秀、學習成本低、開發成本低等幾大關鍵優勢。

使用 uni-app 的前置條件

不要認為uni-app可以跨多端,就感覺開發難度會直線上升。如果說,你開發過小程式,恰好又會vue, 那麼你的學習成本會非常的低。如果你原生小程式與vue都沒有接觸過的話,我建議你花一些時間,看一看他們的官方文件。再回來學習uni-app。

為了更好的跨端開發, 參考uni-app統一規範:

頁面元件我們要遵循Vue 單檔案元件 (SFC) 規範

元件標籤靠近微信小程式規範

介面能力(JS API)靠近微信小程式規範

資料繫結及事件處理靠近Vue.js規範,同時補充了App及頁面的生命週期

為相容多端執行,建議使用flex佈局進行開發

開發工具

毫無疑問,首選使用官方推出的HBuilderX編輯器

視覺化的方式比較簡單,HBuilderX內建相關環境,開箱即用,無需配置node 。

框架目錄見下:

┌─components uni-app元件目錄

│ └─comp-a.vue 可複用的a元件

├─hybrid 存放本地網頁的目錄,詳見

├─platforms 存放各平臺專用頁面的目錄,詳見

├─pages 業務頁面檔案存放的目錄

│ ├─index

│ │ └─index.vue index頁面

│ └─list

│ └─list.vue list頁面

├─static 存放應用引用靜態資源(如圖片、視訊等)的地方,注意:靜態資源只能存放於此

├─main.js Vue初始化入口檔案

├─App.vue 應用配置,用來配置App全域性樣式以及監聽

├─manifest.json 配置應用名稱、appid、logo、版本等打包資訊

└─pages.json 配置頁面路由、導航條、選項卡等頁面類資訊

小程式(微信、支付寶、百度、頭條、QQ、360)

如果要開發小程式,我們需要知道不同平臺下的小程式規範的 。規範瞭解之後,我們開發起來就相對來說比較簡單一些。uni-app幫我們把不同平臺的小程式API幾乎都封裝了 ,只需要將字首替換為uni即可例如:

我們呼叫微信小程式的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請求

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會最大程度的抹平不同小程式平臺之間的差異。

App(ios、安卓)

uni-app在App端不僅可以使用絕大多數的小程式相關的API,同時也可以使用5+API很好的補足了小程式上一些還沒有實現的功能。同時,App端內建weex引擎,提供了原生渲染能力。讓你 App 效能更好。

H5

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

注意事項

非H5端,不能使用瀏覽器自帶物件,比如document、window、localstorage、cookie等,更不能使用jquery等依賴這些瀏覽器物件的框架。因為各家小程式快應用都不支援這些物件。沒有這些瀏覽器自帶物件並不影響業務開發,uni提供的api足夠完成業務。

uni-app的tag同小程式的tag,和HTML的tag不一樣,比如div要改成view,span要改成text、a要改成navigator。