江邊的樹林
uni-app就是基於vue開發的框架,如果你會vue的話,入門應該是沒啥問題,如果上手去做項目的話,還是有些難度的。具體哪些難度我們得搞清楚uni-app到底是什麼。
uni-app是一個使用 Vue.js 開發所有前端應用的框架,開發者編寫一套代碼,可發佈到iOS、Android、H5、以及各種小程序(微信/支付寶/百度/頭條/QQ/釘釘)等多個平臺
這是官網介紹的原話,咋一聽很厲害的樣子。發佈到多個平臺只需要一套代碼,這樣的話效率高,成本又低。那為何大公司沒有采用uni-app進行開發呢?
1.我們先搞懂它為何能跨多個平臺從上圖我們可以看出uni-app跨平臺的原因了:適配每一個終端!
這就很像是java虛擬機了,不過java虛擬機是程序運行時工作,而uni-app是編譯時工作。
可以這樣理解,java虛擬機是在程序運行時,進行適配平臺,uni-app是在編譯時,根據你選擇的編譯平臺進行適配。
在編譯時解決平臺問題,這是目前很多跨平臺框架的首選解決方案,即保證效率又方便開發者。
但這種方案也有缺點,如果平臺變動或更新,那麼有可能導致你app某些功能無法使用,必須等著uni-app維護升級。
這就是uni-app的跨平臺原理,現階段的跨平臺方案沒有完美的,都是有利有弊。
2.如果會Vue,是不是相當於會uni-app
是的,uni-app開發頁面用的就是Vue組件
上圖代碼是uni-app登陸模版項目裡面的,可以看出來,用的就是Vue的template模版開發。
一般不涉及到平臺性的組件都是使用Vue開發的,所以如果你項目對跨平臺要求不高,而且會Vue的話可以直接上手開發uni-app
哪些組件是涉及到平臺性的呢?
比如彈窗,我們用Vue的話一般在template寫個dialog,而uni-app可以直接通過uni.showModal實現 彈窗。當然這個例子不太嚴謹,Vue也能封裝一個這樣實現。這裡主要講的是跨平臺,使用uni-app提供的組件基本不用擔心平臺適配問題。
為什麼會Vue上手uni-app仍然有難度
這裡說的難度不是指寫代碼的難度,代碼都是用Vue寫的不存在啥難度。
1.難度是對跨平臺而言的,你需要懂各平臺運行app的原理。
uni-app代碼編譯打包後,移動端基本是運行在安卓的webview或ios的WKWebView。但是安卓或ios平臺為了效率或者安全性,不會去支持H5的一些危險特性或者功能,當然H5是安全的們這裡的危險只是安卓和ios認為的。
比如ios的WKWebview,對H5一些新的css不支持或者不會太早的更新適配。
如果你不瞭解移動端webview的差異性,那麼很容易踩雷,而且這些錯誤都是無法通過debug發現的。
2.uni-app無法適配的工作需要開發者來實現有些適配工作是uni-app無法通過編譯完成的,這就是需要開發者去實現了。
比如開發中,div、ul、li等得改為view,微信的wxcomponet不支持H5等等。
這裡就增加了很多的開發成本,很多不支持跨平臺的vue組件用不了。
開發久了你可能會有這樣的感覺,會Vue開發uni-app比從頭學uni-app開發都難!
總結
如果你會Vue,使用uni-app開發的話,上手是比較簡單的,但是如果項目涉及到跨平臺的話,就得斟酌下了,會有很多坑,一旦影響到業務功能的實現,就得不償失了。
如果你項目不涉及到移動端,就只在web和小程序上運行的話,可以使用uni-app開發。
都說後端造語言,移動端造系統,web端造框架。但在這個前端大融合的時代,系統框架已分的沒那麼清楚。
而作為開發者,我們得知道,效率和成本是對立存在的,切勿因此失彼!
非著名攻城獅
難度不大,基本看看文檔即可上手,如果開發過微信小程序,那麼API基本一致。
閉著眼睛切土豆
基本上區別不大,難度幾乎沒有,uni-app的開發考慮到微信原生的生命週期
上手很容易 我做了個視頻簡介,你可以看看\n
{!-- PGC_VIDEO:{"status": 0, "thumb_height": 768, "file_sign": "3337a48a12254903d13be6edbc52586b\