多端開發(fā)框架uni-app入坑指南,一套代碼適用微信、頭條等小程序(uni app框架)
前言
hello 小伙伴們,現(xiàn)在我已經(jīng)正式入坑 uni-app 了。uni-app 已經(jīng)發(fā)布好幾個月了,期間也是踩坑無數(shù),但是官方秉承著不拋棄不放棄的精神,積極解決開發(fā)者的各種簡單的、復雜的問題,在此表示感謝。我想還有小伙伴正在持觀望狀態(tài),還沒想好要不要使用 uni-app,而且近些日子以來,許多跨端框架也紛紛出現(xiàn)在了大家的視線當中,讓迷茫的我們更加不知道如何對比選擇了。 uni-app 入坑指南,方便大家更好的了解 uni-app 本篇只講述 uni-app,不與其他類似框架進行對比
一、什么是 uni-app
- uni-app 是一個使用 Vue.js 開發(fā)跨平臺應用的前端框架,開發(fā)者編寫一套代碼,可編譯到iOS、Android、H5、小程序等多個平臺。詳情點擊 uni-app 官方文檔
- uni-app在跨端數(shù)量、擴展能力、性能體驗、周邊生態(tài)、學習成本、開發(fā)成本等6大關鍵指標上擁有極強的競爭優(yōu)勢 。
- 跨端數(shù)量更多
- 平臺能力不受限
- 性能體驗更優(yōu)秀
- 周邊生態(tài)豐富
- 學習成本低
- 開發(fā)成本低
二、使用 uni-app 的前置條件
好多小伙伴可能要問了:哇,一套代碼可以編譯到那么多平臺,那是不是我學習起來很麻煩啊,我只會vue啊,不會小程序,也不會原生開發(fā),能不能學會uni-app呢。
這個問題問的就很棒,那么如果要學會uni-app需要會那些技能呢?答:你如果會vue,基本上就可以解決大多數(shù)問題了。多讀幾遍文檔,你會發(fā)現(xiàn)開發(fā)起來很順暢 。
但是為了更好的跨端開發(fā),我們肯定是要統(tǒng)一規(guī)范的:
- 頁面組件我們要遵循Vue 單文件組件 (SFC) 規(guī)范
- 組件標簽靠近微信小程序規(guī)范
- 接口能力(JS API)靠近微信小程序規(guī)范
- 數(shù)據(jù)綁定及事件處理靠近 Vue.js 規(guī)范,同時補充了App及頁面的生命周期
- 為兼容多端運行,建議使用flex布局進行開發(fā)
三、開發(fā)工具
使用官方推出的 HBuilderX 編輯器
可視化的方式比較簡單,HBuilderX 內(nèi)置相關環(huán)境,開箱即用,無需配置node 。
四、使用Vue.js
幾乎全支持 Vue官方文檔:模板語法
當然,說的是幾乎,那肯定有不支持的情況下啊, 下面給大家羅列一下不支持的情況 :
- 不支持純HTML
- 不支持部分復雜的 JavaScript 渲染表達式
- 不支持過濾器
五、小程序(微信、支付寶、百度、頭條)
當然如果要開發(fā)小程序,不可避免的,我們肯定是要知道不同平臺下的小程序規(guī)范的 。當然知道了這些規(guī)范之后,我們開發(fā)起來就比較簡單了。uni-app 給我們把不同平臺的小程序 API 幾乎都封裝了 ,只需要將前綴替換為 uni 即可 舉例說明:
我們調(diào)用微信小程序的 request 請求
我們使用 uni-app 的 request 請求
有沒有發(fā)現(xiàn)什么不一樣的?對了,除了前綴 wx替換為uni之外,其他的地方一摸一樣,是不是這樣開發(fā)起來就很一賊了呢 。
六、App(ios、安卓)
uni-app 不僅可以使用絕大多數(shù)的小程序相關的 API,同時也可以使用 5 API 很好的補足了小程序上一些還沒有實現(xiàn)的功能,是不是很美好?而且開發(fā)方式還是跟上述一樣,沒有變化,是不是更美好了呢。
七、H5
h5 就不多說了,基本上跟常規(guī) vue 開發(fā)沒有什么區(qū)別, 唯一需要注意的是,有些 API 是不能在 h5 中使用,主要看文檔,看文檔,看文檔 。
八、如何實現(xiàn)跨端
當然雖說是跨端,但是肯定是有情況是不支持的,比如遇到有些平臺特有的 API 怎么辦 ?
不用擔心,這些問題 uni-app 都為你想到了 那就是使用條件編譯 。
九、條件編譯
(詳細看文檔)在 C 語言中,通過 #ifdef、#ifndef 的方式,為 windows、mac 等不同 os 編譯不同的代碼 uni-app 參考這個思路,為 uni-app 提供了條件編譯手段,在一個工程里優(yōu)雅的完成了平臺個性化實現(xiàn) 。
條件編譯是利用注釋實現(xiàn)的,在不同語法里注釋寫法不一樣,js使用 // 注釋、css 使用 / 注釋 /、vue/nvue 模板里使用 **。
舉個例子:
是不是感覺很方便 ?這樣就可以很巧妙的去區(qū)分不同的平臺了,具體的請詳細看文檔,看文檔,看文檔 。
十、注意事項
- 非 H5 端,不能使用瀏覽器自帶對象,比如 document、window、localstorage、cookie 等,更不能使用 jquery 等依賴這些瀏覽器對象的框架。因為各家小程序快應用都不支持這些對象。沒有這些瀏覽器自帶對象并不影響業(yè)務開發(fā),uni 提供的 api 足夠完成業(yè)務。
- uni-app 的 tag 同小程序的 tag,和 HTML 的 tag 不一樣,比如 div 要改成 view,span 要改成 text、a 要改成 navigator。
以上,所有內(nèi)容(除了我自己說的話以外)都來自 uni-app官方文檔,請注意多看文檔,多看文檔,多看文檔。
結(jié)語
ok,到這里入坑基本完畢。接下會講述如何使用 uni-app 從零開始開發(fā)一個完整的音樂應用,盡情期待!
希望本文能幫助到您!
點贊 轉(zhuǎn)發(fā),讓更多的人也能看到這篇內(nèi)容(不收藏不點贊,都是耍流氓-_-)
想了解更多前端知識歡迎評論區(qū)留言或私信我!
歡迎關注公眾號:fkdcxy 瘋狂的程序員丶 獲取更多前端教程!