前言
先拋出問題 iOS 真的不行了嗎?
蘋果爸爸得治一治這些搶飯碗的-。-
開個(gè)玩笑,回歸正題。本文開始將使用Weex從無到有開發(fā)一款完整的上線應(yīng)用。
為什么有Weex和ReactNative
不討論公司開發(fā)成本。
客戶端需要頻繁更新,iOS更新時(shí)間還要受到審核的牽制;iOS、Android和前端同時(shí)開發(fā)同一個(gè)需求,Hybrid的性能和Native相比又差了一點(diǎn)。
像Weex和ReactNavtive這般讓移動(dòng)開發(fā)者通過簡(jiǎn)捷的前端(weex使用的Vue全家桶,ReactNative使用的React全家桶)語(yǔ)法寫出Native級(jí)別的性能體驗(yàn),并支持iOS、安卓、YunOS及Web等多端部署的新技術(shù)必然出現(xiàn)。
Weex和ReactNative對(duì)比
是現(xiàn)有的ReactNative,所以Weex從一開始就站在先驅(qū)者的基礎(chǔ)上。但是Weex也從一開始就被開發(fā)者弄成“哥倆”
支持平臺(tái)
ReactNative標(biāo)語(yǔ):“Learn once, write anywhere”,
Week標(biāo)語(yǔ):“Write Once, Run Everywhere”。
Weex從最開始,就要支持更多的平臺(tái)。
ReactNative可以支持iOS、Android,而Weex可以支持iOS、Android、HTML5。
開發(fā)成本
與 Web App、HTML5 App 或 hybrid App 不同,可以使用 Weex 構(gòu)建一個(gè)真正的原生應(yīng)用。更貼心的是你的代碼只需使用 HTML、CSS、JavaScript 可以構(gòu)建原生應(yīng)用,上手非常簡(jiǎn)單。但實(shí)際上,應(yīng)用的底層是 Objective-C 或 Java, 同時(shí),Weex 提供很多 native 組件或模塊供開發(fā)人員使用。
ReactNative同樣可以解決性能問題,但它使用了JSX來書寫。
Weex更輕快,ReactNative官方只允許將ReactNative基礎(chǔ)js庫(kù)和業(yè)務(wù)JS一起打成一個(gè)JS bundle,沒有提供分包的功能,所以如果想節(jié)約流量就必須制作分包打包工具。而Weex默認(rèn)打的JS bundle只包含業(yè)務(wù)JS代碼,體積小很多,基礎(chǔ)JS庫(kù)包含在Weex SDK中,這一點(diǎn)Weex與Facebook的React Native和微軟的Cordova相比,Weex更加輕量,體積小巧。把Weex生成的JS bundle輕松部署到服務(wù)器端,然后Push到客戶端,或者客戶端請(qǐng)求新的資源即可完成發(fā)布。如此快速的迭代就解決了前言里面說的,無法進(jìn)行快速的便捷更新,
擴(kuò)展性
兩者都支持橫向擴(kuò)展(native組件和API),這樣開發(fā)中就可以更好地去中心化,靈活定制組件,模塊。
性能
相對(duì)來說Weex更加關(guān)注性能。
在各平臺(tái)上列表視圖iOS端為tableView,Android是recycler view,而ReactNative目前使用的是ScrollView。
只總結(jié)一小部分,詳盡對(duì)比看這位同學(xué)的知乎。
工作原理
Weex 是一個(gè)動(dòng)態(tài)化的高擴(kuò)展跨平臺(tái)解決方案。 在 Weex 代碼中,您可以使用 <template>,<style> 和 <script> 標(biāo)簽編寫頁(yè)面或組件,然后將它們轉(zhuǎn)換為 JS bundle 以進(jìn)行部署。當(dāng)服務(wù)器返回給客戶端 JS bundle 時(shí),JS bundle 會(huì)被客戶端的 JavaScript 引擎處理,并管理渲染 native 視圖,調(diào)用原生 API 和用戶交互。

如何把.Vue或者.we轉(zhuǎn)化成JS文件的暫且不討論。
那么Weex是如何通過JSBundle來渲染Native UI的呢?

不管是.we還是.Vue文件都有template、style、script,具有成熟的MVVM思想。
同時(shí)解析成JSBundle全部是在服務(wù)端進(jìn)行的。
如何開始Weex
明晚再寫...
這里需要大家去看Weex教程到這里假設(shè)大家已經(jīng)配置好開發(fā)環(huán)境,選擇好了IDE(我用的WebStorm。有文檔我就不copy湊字?jǐn)?shù)了。
下一篇文章就會(huì)開始真正的應(yīng)用開發(fā)。
Weex 從無到有開發(fā)一款上線應(yīng)用1