1. 程式人生 > >淺談一款移動端開發框架Weex

淺談一款移動端開發框架Weex

眾所周知,在移動應用開發的過程中經常會出現多平臺開發和頻繁釋出新版本的問題,而使用了諸如Weex,React Native等開發套件則可以輕鬆解決這些令人頭疼的問題。本文就向大家介紹一下阿里在去年4月推出的一款移動端開發框架Weex。

上面提到了Weex可以解決多端研發和頻繁發版這兩個問題,它是怎麼做到的呢?其實原理很簡單,對於前者而言,Weex做到了儘量高的程式碼複用率,達到各平臺使用同一份程式碼的目的;而對於後者,由於Weex是一個純Js框架,通過js語言的特殊性,可以動態地重新整理介面,避免頻繁發版。

Weex的工作原理,簡單地來說,是自定義了一套DSL語言(.we),配合vue實現資料繫結、vdom等等功能。再通過native端與JS端的資料、API互動使得最終體現為native的呼叫過程,並在設計之初就考慮到在三端(iOS、安卓和H5)上能夠得到展現。

再說一下服務端和客戶端的組成。首先,服務端,在最初的DSL,即Weex檔案(.we),通過Transformer轉換成Js Bundle,繼而部署到伺服器,至此伺服器已完成。同時由於轉換在伺服器就已經完成,因此也避免了對應的效能問題。其次,客戶端,第一層是JS-Framework,最後到各平臺對應的RenderRengine。

目前,Weex有3種整合方式:

全頁模式:目前支援單頁使用或整個App使用Weex開發(還不完善,需要開發Router和生命週期管理),這是主推的模式,可以類比RN。

Native Component模式:把Weex當作一個iOS或Android元件來使用,類比ImageView。這類需求遍佈手淘主鏈路,如首頁、主搜結果、交易元件化等,這類Native頁面主體已經很穩定,但是區域性動態化需求旺盛導致頻繁發版,解決這類問題也是Weex的重點。


H5 Component模式:在H5種使用Weex,類比WVC。一些較複雜或特殊的H5頁面短期內無法完全轉為Weex全頁模式(或RN),比如互動類頁面、一些複雜頻道頁等。這個痛點的解決辦法是:在現有的H5頁面上做微調,引入Native解決長列表記憶體暴增、滾動不流暢、動畫/手勢體驗差等問題。

最後,總結一下Weex的優缺點:

優點:

1. 輕量級。簡單的DSL語言易於上手,整個框架輕便小巧。尤其是DSL語言避免了全域性衝突,可自定義各種classname而不用擔心衝突,個人認為是基於css的一個重要改進。

2. 擴充套件性和效能高。阿里在釋出會上重點強調了這兩個質量屬性,相比於相對成熟的RN,均佔有優勢。

3. 元件化。Weex本身編寫的介面就天然地支援元件化,同時支援大部分元件——除了div空白容器、圖片、文字之外,還有比如Slider這種效能較好的滑塊元件,前臺開發的程式設計師經常會使用到的。

4. 開發成本相對較低。

缺點:

1. bug眾多。由於Weex推出時日不長,其中還有很多bug待發現。

2. 社群、文件以中文為主,缺少英文版本,國際化程度較低,文件更新速度較慢。雖然通過Twitter獲得較高的國外關注度。

3. 社群規模小,阿里員工佔據了大部分,知名度較低。

ps:由於放圖片要稽核,所以工作原理的圖暫時沒放。

相關推薦

移動開發框架Weex

眾所周知,在移動應用開發的過程中經常會出現多平臺開發和頻繁釋出新版本的問題,而使用了諸如Weex,React Native等開發套件則可以輕鬆解決這些令人頭疼的問題。本文就向大家介紹一下阿里在去年4月推出的一款移動端開發框架Weex。 上面提到了Weex可以解決多端研發和

一下web移動基本

5.5 相關 過程 部件 位圖 都是 3.5 柵格 開發 屏幕尺寸、屏幕分辨率、屏幕像素密度 屏幕尺寸: 指屏幕的對角線的長度,單位是英寸,1英寸=2.54厘米。 常見的屏幕尺寸有2.4、2.8、3.5、3.7

移動那些事兒(移動開發注意事項

對於手機網站建設,總結了如下幾點注意: 1、 安卓瀏覽器看背景圖片,有些裝置會模糊。 用同等比例的圖片在PC機上很清楚,但是手機上很模糊,原因是什麼呢? 經過研究,是devicePixelRatio作怪,因為手機解析度太小,如果按照解析度來顯示網頁,這樣字會非常小,所以蘋果當初就把iPhone 4的9

PC和移動的自適應

   做網頁時,我們通常需要考慮到不同電腦螢幕尺寸,以及不同手機螢幕大小等問題,解決樣式發生改變的情況,那麼如何解決呢?現在主要是採用自適應來解決高度,寬度的,以及圖片自適應問題,下面就PC端和移動端來總結一下,通常進行自適應高度和寬度,圖片時,一般與頁面的佈局存在關係。

html5 video 移動填坑記

本文介紹了html5 video 移動端填坑記,分享給大家,具體如下:?12345678910111213141516171819202122232425262728<video id="video"style="object-fit:fill"autoplaywebk

移動開發框架哪個好?jQuery/Vue/AngularJS有哪些區別和優缺點?

JS框架,我認為大體上可以分為兩種。一種是類似jQuery/ d3那樣的,通過修改html的DOM結構來渲染UI的庫。還有一種則是類似於AngularJS/ReactJS 那樣的,採用MVC分層的,通過Model來渲染View UI框架。效能比較jQuery基本都是瀏覽器原生

極簡PHP框架。目錄結構簡單。支援前端/後/DBA隔離開發

眾產未來 - IT工程 - 全棧工程師 WEB PHP框架 這款PHP框架,經歷了5年發展,開發了十幾個商業專案。 眾產風格極易理解,目錄結構清晰,檔案極少,支援前後端分離,DBA與後端邏輯可分離。 目錄結構 zcommon/ co

Thrift是由Fackbook開發的可伸縮、跨語言的服務開發框架

final 問題 不同 err gin 之間 統一 tex cgi 這段時間,一直在整理公司的內部 rpc 服務接口,面臨的一個問題就是:由於公司內部的系統由幾個不同的語言編寫的。C# ,java,node.js 等,如何實現這些內部系統之間的接口統一調用,確實是比較麻煩,

移動開發~視口viewport 、meta常用設定、常見問題(

viewport 視口 (可視區視口); 視口(viewport)是使用者網頁的可視區域,也可稱之為視區。 預設不設定 viewport 可視區視窗的寬度在移動端的時候是980;  meta標籤的設定 設定視口viewport <meta name="viewport

ES6之promise 實際開發中的使用(

一:promise是個什麼鬼?   1.1:說起promise這個玩意,首先呢,我們來討論一下什麼叫做"非同步"而於此相反的呢就是"同步"呢,好,那下面讓寡人給大家舉個例子來講明白什麼是同步什麼是非同步.                 1.1.1:同步     同步就

移動H5開發所遇到的問題與細節,以及ios相容

第一次弄移動端H5專案開發,雖然是簡單的頁面展示,但也遇到了很多細節問題與相容問題,尤其是h5視訊標籤video, 一.移動端禁止縮放 相容 <meta name="viewport" content="width=device-width,initial-scal

Cordova移動開發-()引言

我們在使用Cordova之前,由於整個體系涉及到的東西太多,先進行一個整體的瞭解。由於作者是Java開發,所以預設讀者對Java比較熟悉了。 一、整體環境介紹     1. 我們使用Cordova開發,當然一定要安裝Cordova了。         Cordova的安

移動開發常見問題解決方案彙總- Javascript技巧(

1、安卓瀏覽器看背景圖片,有些裝置會模糊。 用同等比例的圖片在PC機上很清楚,但是手機上很模糊,原因是什麼呢? 經過研究,是devicePixelRatio作怪,因為手機解析度太小,如果按照解析度來顯示網頁,這樣字會非常小,所以蘋果當初就把iPhone 4的960640解析

MOBA類遊戲《碼神聯盟》的服務架構設計與實現(更新優化思路)

一、前言   《碼神聯盟》是一款為技術人做的開源情懷遊戲,每一種程式語言都是一位英雄。客戶端和服務端均使用C#開發,客戶端使用Unity3D引擎,資料庫使用MySQL。這個MOBA類遊戲是筆者在學習時期和客戶端美術策劃的小夥伴一起做的遊戲,筆者主要負責遊戲服務端開發,客戶

H5移動開發基礎()事件基礎

事件基礎 移動端基礎事件 滑屏原理 transform 與 transition 無縫滑屏自動播放幻燈片 移動端基礎事件 手指按下:touchstart <==> mousedown 手指擡起:touchend <

MOBA類遊戲的服務架構設計

一、前言   《碼神聯盟》是一款為技術人做的開源情懷遊戲,每一種程式語言都是一位英雄。客戶端和服務端均使用C#開發,客戶端使用Unity3D引擎,資料庫使用MySQL。這個MOBA類遊戲是筆者在學習時期和客戶端美術策劃的小夥伴一起做的遊戲,筆者主要負責遊戲服務端

移動開發demo—移動web相簿(

本文主要是介紹開發移動端web相簿這樣一案例用到的前置知識。 一、移動端樣式 移動端更接近手機原生的方式。 如下是一個angular mobile的demo的例子:   移動端demo做成這樣的好處: 在手機端瀏覽器中開啟,接近原生app應用。 打包成Android或者io

B/S客戶與伺服器互動資料(

淺談Web資料互動(一)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 追風 C/S模式和B/S各有其有點也各有其缺點,B/S模式在開發中需要考慮資料如何從客

介紹安卓開發優雅的日誌log框架_Logger

實現功能: 執行緒的資訊 類的資訊 方法的資訊 格式列印json、xml等 點選連結跳轉到原始碼列印處 實現效果: 初始化和關閉以及儲存日誌到SD卡 在App

Android混合開發)——移動與前端互動之JSBridge引入

一丶概述 最近轉前端,在做一個混合專案,Android + 前端Vue技術,Vue沒那麼快上手,先分享一下Android部分的經驗,後期會學習Flutter,和RN,邊學邊做邊分享 二丶效果演示 三丶JSBridge引入 1.什麼是JSBridge JSBrid