基于vue2.0開(kāi)發(fā)混合app的思考

前言

工作中接到開(kāi)發(fā)混合app的需求,以前沒(méi)有接觸過(guò),做了一段時(shí)間調(diào)研,也寫個(gè)幾個(gè)項(xiàng)目,就過(guò)程中遇到的問(wèn)題,談?wù)勏敕ā?/p>

調(diào)研階段

經(jīng)過(guò)一陣google搜索,大致了解了幾種方案,按照類別可以分成以下幾類:

類別 代表
native APP react-native(jsx)、weex(vue)
hybrid APP dcloud(mui、5+SDK)、ionic(angular、cordova)、webview加載SPA應(yīng)用
web APP 瀏覽器加載SPA應(yīng)用

注:并未考慮原生 APP。

各種方案的優(yōu)缺點(diǎn),網(wǎng)上有很多詳細(xì)的文章,這里就不一一敘述了,大家可自行搜索。

實(shí)踐階段

1. React-Native

接下來(lái)就是一個(gè)一個(gè)的嘗試,最早接觸過(guò)React-Native開(kāi)發(fā),就先說(shuō)說(shuō)它。

React-Native提供了常用的組件,JSX語(yǔ)法,生態(tài)圈也比較繁榮,有很多插件。

坑也比較多:

  • 前期對(duì)windows平臺(tái)以及android平臺(tái)支持不太友好,在此平臺(tái)上搭建環(huán)境簡(jiǎn)直想哭,建議mac;
  • list組件存在性能問(wèn)題,初入門的面對(duì)一大堆英文文檔研究性能問(wèn)題,還是有一點(diǎn)點(diǎn)勉強(qiáng)的;
  • 打包要兼顧ios和android,需要一定的原生基礎(chǔ),但不多;
  • 鍵盤遮擋問(wèn)題;
  • navigator不是太好用;

2. Ionic

稍微嘗試了下Ionic框架,簡(jiǎn)單理解就是,Ionic提供UI框架,angular作為mvvm渲染框架,cordova作為中間件,并負(fù)責(zé)打包。

Ionic的UI組件豐富,大大方便了前端的開(kāi)發(fā)工作,但是UI設(shè)計(jì)嚴(yán)格要求的話,還是需要自己定制的。

3. Dcloud

dcloud提供了hbuilder開(kāi)發(fā)工具,mui框架,以及5+sdk,致力于提高HTML5性能體驗(yàn)。

mui不僅提供的UI組件豐富,還提供了事件管理、網(wǎng)絡(luò)請(qǐng)求等功能,真的是一應(yīng)俱全,而且有相關(guān)的完整demo。

坑:

  • 普遍反映社區(qū)不活躍,官方論壇回復(fù)也很慢。
  • 對(duì)于熟悉mvvm模式的開(kāi)發(fā)而言,不算好消息,dcloud采用的是類似jquery操作dom的方式
  • 項(xiàng)目比較散亂,代碼冗余,和目前流行的前端項(xiàng)目工程化還是有差距的
  • vue + mui 集成,相對(duì)比較困難,但是本人還是成功了。
  • 客戶端反映,集成復(fù)雜,權(quán)限問(wèn)題嚴(yán)重。

4. weex

感覺(jué)還有待提高,對(duì)初學(xué)者很不友好。

從環(huán)境搭建,到建立項(xiàng)目工程,再到調(diào)試打包,沒(méi)有一份合理的指導(dǎo),入坑需謹(jǐn)慎。

坑:

  • weex-toolkit 升級(jí)后不再支持init命令
  • npm需要> 5.0
  • 使用vue-router需要將項(xiàng)目改造成單頁(yè)面,即修改webpack配置文件為單入口
  • vue-router需要設(shè)置默認(rèn)值,否則會(huì)顯示空白
  • navigator方式跳轉(zhuǎn)在web端不行,需要使用playground調(diào)試
  • 在自己編寫的組件中使用v-for指令,playground中調(diào)試一直報(bào)錯(cuò),Web正常。
  • flex-direction默認(rèn)不是row

5. webview嵌套

前端工程可自行架構(gòu),但要注意和客戶端商量好交互方式。

單頁(yè)面和多頁(yè)面都是可以的。

單頁(yè)面有一些注意的地方,重定向最好不要用,replace比push更好用。

webview就相當(dāng)于瀏覽器,如果從原生跳轉(zhuǎn)到嵌套SPA頁(yè)面,再跳轉(zhuǎn)到原生,可以像瀏覽器一樣正常逐級(jí)返回。

從原生跳轉(zhuǎn)到SPA頁(yè)面,首先要跳轉(zhuǎn)到SPA項(xiàng)目的路由入口才能繼續(xù)向下一級(jí)跳轉(zhuǎn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,023評(píng)論 25 709
  • 一直想試著寫些東西、這回逮著個(gè)平臺(tái)了、等著吧!
    野文閱讀 205評(píng)論 0 0
  • 二零一三年初,我尚未畢業(yè),當(dāng)時(shí)在江門的某一家港資企業(yè)實(shí)習(xí)了幾個(gè)月。那時(shí)候在做招聘,做了一些筆記。今天回來(lái)看看,依然...
    lxrdxyx閱讀 464評(píng)論 0 1
  • 一、Android中的事件處理方法 事件處理:響應(yīng)用戶UI動(dòng)作,提高應(yīng)用程序交互性 1、基于監(jiān)聽(tīng)的事件處理機(jī)制 2...
    _執(zhí)筆閱讀 4,632評(píng)論 0 1
  • 夜,除了靜還有什么 墓冢里棺木腐朽 白骨燃起新鮮的磷火 像喜悅,重見(jiàn)星光 火焰滅了以后,星光依舊 一切又重歸靜與森...
    封城雪閱讀 439評(píng)論 0 9

友情鏈接更多精彩內(nèi)容