① uniapp多久能上手
主要看個人學習能力和學習時間決定
uni-app 是一個使用 Vue.js 開發跨平台應用的前端框架。開發者通過編寫 Vue.js 代碼,uni-app 將其編譯到iOS、Android、微信小程序等多個平台,保證其正確運行並達到優秀體驗。uni-app 繼承自 Vue.js,提供了完整的 Vue.js 開發體驗。uni-app 組件規范和擴展api與微信小程序基本相同。有一定 Vue.js 和微信小程序開發經驗的開發者可快速上手 uni-app ,開發出兼容多端的應用。uni-app提供了條件編譯優化,可以優雅的為某平台寫個性化代碼、調用專有能力而不影響其他平台。
② 混合開發之uni-app
uni-app App端內置weex渲染引擎,提供原生渲染能力
然而, Weex並不是一個前端框架 。實際上,前端框架僅僅是 Weex 的語法層或稱之為 DSL (Domain-specific Language),它們與原生渲染引擎是分離的。換句話說,Weex 並不依賴於特定的前端框架,隨著前端技術的發展,Weex 也可以集成更多廣泛使用的前端框架。
以往的 weex ,有個很大的問題是它只是一個高性能的渲染器,沒有足夠的API能力,使得開發時非常依賴原生工程師協作,開發者本來想節約成本,結果需要前端、iOS、Android 3撥人開發,適得其反。而 nvue 解決了這個大問題,讓前端工程師可以直接開發完整 App,並提供原生插件的市場交易和雲打包。這些組合方案,開發者切實的提高效率、降低成本。
如果你是web前端,不熟悉 weex,那麼建議你仍然以使用 vue 為主,在App端某些 vue 表現不佳的場景下使用 nvue 作為強化補充:
uni-app App 端內置 HTML5+ 引擎,讓 js 可以直接調用豐富的原生能力。
小程序及 H5 等平台是沒有 HTML5+ 擴展規范的,因此在 uni-app 調用 HTML5+ 的擴展規范時,需要注意使用條件編譯。否則運行到h5、小程序等平台會出現 plus is not defined錯誤。
在普通的 H5+ 項目中,需要使用 document.addEventListener 監聽原生擴展的事件。
uni-app 中,沒有 document。可以使用 plus.globalEvent.addEventListener 來實現(注意manifest中需開啟新編譯器,即自定義組件模式"usingComponents":true)。
同理,在 uni-app 中使用 Native.js 時,一些 Native.js 中對於原生事件的監聽同樣需要按照上面的方法去實現。
注意:舊編譯器(非自定義組件模式)不支持 plus.globalEvent 這個對象。