一.Taro和uni-app的介紹css
1.taro的介紹前端
taro是多端統一開發框架,支持用 React 的開發方式編寫一次代碼,生成能運行在微信/百度/支付寶/字節跳動小程序、H五、React Native 等的應用.vue
詳細j介紹見官網:https://nervjs.github.io/taro/react
2.uni-app的介紹git
uni-app
是一個使用 Vue.js 開發跨平臺應用的前端框架,開發者編寫一套代碼,可編譯到iOS、Android、H五、小程序等多個平臺。github
詳細介紹見官方文檔:https://uniapp.dcloud.io/vuex
二.Taro和ni-app的特色npm
官網介紹:小程序
1.官網介紹taro的特色:微信小程序
(1)多端運行:一鍵生成能夠在微信小程序/H5/ReactNative等端運行的代碼。
(2)語法風格:採用React語法標準,支持JSX書寫,讓代碼更具表現性。
(3)組件化:支持組件化開發,讓代碼能夠複用,讓功能開發更加清晰。
(4)TypeScript:全面支持TypeScript,提供更強大的生產力。
(5)開發體驗:貼心的代碼智能提示,實時代碼檢查,讓開發效率大幅提高。
(6)現代開發流程:配套的開發工具Taro CLI讓開發流程自動化,一切都從一行命令開始
2.官網介紹uni-app的特色:
(1)跨端數量更多;一套代碼,能夠發佈到IOS,Android,小程序,H5等多個平臺。
(2)平臺能力不受限:在跨端的同時,經過推薦編譯+平臺特有API調用,能夠優雅的爲某平臺寫個性化代碼,調用專有能力而不影響其餘平臺;支持原生代碼編寫和原生sdk生成。
(3)性能體驗優秀:體驗更好的Hybrid框架,加載新頁面速度更快
(4)周邊生態豐富:支持NPM包管理,兼容微信小程序自定義組件及JS,SDK,支持mpvue項目及組件,APP端支持和原生混合編碼;至關於微信小程序中豐富的三方sdk克直接用於跨平臺開發。
(5)學習成本低:基於通前端技術棧,採用vue語法+微信小程序api,無額外學習成本。
(6)開發成本低:人力成本大幅度節省,招聘,人力,管理,研發,測試各方面成本大幅度降低;HbuildX是高效開發利器,熟練掌握後研發效果至少翻倍(即使值開發一個平臺)。
三.二者的對比
1.共同點:
(1)二者都是用主流框架開發的
(2)都能支持微信、百度、支付寶、今日頭條等小程序,H5,以及iOS和Android的App
(3)均支持使用 npm/yarn 安裝管理第三方依賴
(4)均支持使用 ES6 甚至更新的ES規範
(5)均支持使用 less/scss/ts 等預編譯器
(6)均支持進行應用狀態管理,taro 支持 Redux/Mobx,uni-app 支持 vuex
2.維度考量:
- 技術棧:使用的技術框架,對比技術上的差別
- 開發工具:適合開發人員的工具,能爲開發帶來錦上添花的效果
- 跨端程度:真實運行項目到各平臺,對比平臺差別抹平程度
- 運行性能:框架是否帶來了額外的性能開銷,下降用戶體驗
- 開發體驗:是否支持現代開發流程,是否對工程師提供高效友好的協助
- 社區生態:社區是否繁榮,是否有大量可用輪子?
- 質量對比:經過一些案例進一步瞭解二者開發功能上的優劣
特色描述 | taro | uni-app | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
技術棧 | 使用react開發的框架 | 使用vue開發的框架 | ||||||||||||
開發工具 | taro官方未特別推薦IDE,但提供了vscode 支持的d.ts。也能夠根據自身狀況選擇本身習慣的 開發工具開發,能夠提升編譯代碼上的開發效率 (開發工具自由) |
uni-app推薦的開發工具是他自家的HBuilderX,用它能夠不配環境,開箱即用。hbuilder對uni-app提供了優化定製,但對不熟悉的開發者有必定適應成本。另外hbuilder自帶一個編譯器,和cli裝在項目下的編譯器是2個,這個坑很多新人要注意別踩。(開發工具侷限,只能用Hbuild工具開發) | ||||||||||||
跨端程度 | 微信、支付寶、百度、頭條、H五、App多平臺 | 微信、支付寶、百度、頭條、H五、App多平臺(官網特別強調支持IOS,Android) | ||||||||||||
運行性能 | taro在性能優化上作的更細緻 | uni-app須要本身注意代碼優化 | ||||||||||||
開發體驗 |
taro的安裝及使用:
|
uni-app的安裝及使用: |
||||||||||||
社區生態 | 1.Taro經過Github Issues+微信羣方式交流,微信羣活躍,貢獻代碼的人也多。 2.taro官方發佈了taro-ui庫,awesome裏三方組件不太多。 3.github 上taro的star遠超uni-app |
1.uni-app有專門的論壇,還有視頻教程,QQ羣微信羣都活躍。 2.uni-app官方發佈了uni-ui庫,還有個插件市場,裏面輪子不少,作業務應該能夠很快拼輪子作出來。 3.uni-app的文檔比taro要完善,數了數交流羣的數量,也是uni-app多很多。 |
||||||||||||
質量對比 (爲驗證最終跨端效果,咱們分別下載 taro、uni-app的示例項目,體驗編譯到不一樣平臺的運行效果。) |
首先選擇 taro 官方帳號下的知乎小程序示例(github地址),運行到各端後的效果: 從如上截圖來看,taro成功實現了多端編譯;咱們接着更細緻的對比了一下各端運行,發現taro在以下方面存在問題:
以後點擊二級頁、三級頁,發現H5端的其它問題:
|
接着運行uni-app示例項目,選擇官方帳號下的看圖App模板(github地址)測試,運行到各端後效果:
從上圖來看,uni-app 一樣成功的實現了多端編譯;咱們接着更細緻的對比了一下各端運行,發現以下問題:
以後點擊二級頁、三級頁,沒再發現明顯問題。 從兩個項目的實際運行來看,uni-app的跨端效果更好,特別是在H5平臺相比taro要完善很多。 另外,在進行兩個框架的發行編譯時,咱們還發現了一個差別點:
|
||||||||||||
案例對比 | 兩個框架都在官網放上了衆多案例,只是taro案例清一色是微信小程序,沒看到其餘端 | uni-app的案例什麼平臺都有,不少App作了多個平臺(特別強調跨iOS,Android) |
四.總結
綜合考量,決定選擇uni-app,具體緣由以下:
1.uni-app在不一樣平臺的運行效果更好;
2.uni-app有它自帶的IDE,可以幫助咱們快速構建項目和打包項目;
3.如何在有限前端團隊人數下搞定更多平臺,是咱們的首要考慮,沒有人想踩太多坑致使任務完不成,而且跨端方面uni-app更成熟;
4。學習uni-app(vue)的學習成本更低,開發時間和風險更低。