時間:2017-04-09 來源:互聯網 瀏覽量:
reactxp是微軟的skype團隊開發的一個js庫,它不僅支持Android和iOS,還支持web和windows,看似比React Native還要牛。 新的開源庫利用了React框架,允許開發人員在他們的應用程序中使用React。ReactXP允許構建響應性的網頁和移動應用程序,通過ReactJS和React Native,這些應用程序開對平台來說增加了原生性。
reactxp利用React和React Native,Web應用措施可以與iOS和Android應用措施共享大部門邏輯,但視圖層需要為每個平台別離實現。因此微軟進一步開拓了一個薄的跨平台層,稱之為ReactXP。假如開拓人員將應用措施寫入此抽象,則可以在多個方針平台上共享視圖界說,樣式和動畫。雖然,措施員仍然可以提供平台特定的UI變體,可是這可以在需要時選擇性地舉辦。
ReactXP的設計思量了跨平台開拓。一般來說,它袒露了在React JS(HTML)和React Native為iOS和Android應用以一致的方法實現的API,組件,道具,樣式和動畫參數。一些平台特定的道具和睦勢氣魄屬性已經袒暴露來,但微軟已經實驗將其保持在最低限度。ReactXP的意圖則是盡大概精練。焦點組件和API僅限於險些所有應用措施所需的成果。ReactXP的擴展以雷同的跨平台方法袒露了更多的專門成果。
ReactXP與React Native的關係
官方解釋說,ReactXP構建於React Native之上,提供幾乎與RN相同的Web版本API,但ReactXP並不是RN的子集或超集。
ReactXP最重要的特點是它的API的一致性,在某些情況下,平台之間的實現不同,API會在一些平台能使用,在另一些平台則是無操作(但能被調用),ReactXP盡可能的不讓用戶去關心平台區別。
使用ReactXP能過直接調用RN或React DOM,但這時需要根據條件判斷平台來進行相應的操作。
ReactXP與React Web的異同
如果關心React發展的同學可能發現,微軟的這個東西怎麼似乎見過。不錯,早在15年,淘寶FED就推出了一個React Web項目,使用React Native兼容的API開發Web應用。後來Twitter也推出了一個React Native for Web項目,與前者目標相似,不過在國外這個更為知名。
微軟解釋了ReactXP和React Native for Web的不同。ReactXP隻包含能夠跨平台的API和組件,它的目標之一是讓開發者使用自己喜歡的環境開發應用,並且有信心讓應用跑在不同的平台上而不用過多的擔心兼容問題。ReactXP構建於React.js和React Native之上,目標是跨平台,而React Native for Web目標是Web平台。
ReactXP特點:
* 跨越更多的平台(Android、iOS、Web、Windows10)
* 統一Api
* 一套代碼
* 可以使用TypeScript,但不強製使用
* 學習成本低(語法與React、React Native基本一樣)
ReactXP 能夠提供輕量級的基於 React JS 和 React Native 的跨平台抽象層,並能夠實現用於實現更加複雜的組件的基礎組件。其支持如下平台:
web (React JS)
iOS (React Native)
Android (React Native)
Windows UWP (React Native)
Cordova 和 Xamarin是開發者解除較為多的開發平台工具,但是前者無法提供足夠令人滿意的性能表現,而後者在 Web 開發上心有餘而力不足。ReactXP的出現解決這兩者之間的缺點,統一了React JS 和不同的React Native 實現的行為和接口,為開發者進行Web 開發提供了便利。
二者定位不在一個維度上,react( native)是前端框架,而且對各平台差異化內容不給你做模型統一,XP定位是底層基於react( native)跨平台泛前端開發解決方案,要讓大家的write once run anywhere。實際上ReactXP集成了react和React Native,它是建立在React和React Native之上的一個抽象層,構建具體的平台代碼還是依賴React和React Native。這和TypeScript有點類似。
ReactXP的設計考慮了跨平台開發。一般來說,它暴露了在React JS(HTML)和React Native為iOS和Android應用以一致的方式實現的API,組件,道具,樣式和動畫參數。一些平台特定的道具和風格屬性已經暴露出來,但微軟已經嚐試將其保持在最低限度。ReactXP的意圖則是盡可能輕便。核心組件和API僅限於幾乎所有應用程序所需的功能。ReactXP的擴展以類似的跨平台方式暴露了更多的專門功能。
Skype 團隊近日決定對 ReactXP 進行開源,以造福更多的開發者。同時,他們還承諾會大約每個月推出一次更新,以匹配 React Native 的發行速度。感興趣的開發者可以前往(https://microsoft.github.io/reactxp/)了解更多關於ReactXP框架的細節。
關於ReactXP,部分用戶的觀點:
用戶一:
1. 從微軟來看,推出 ReactXP 可能是為了借助 react , 吸引開發者,促進 windows 生態發展;
2. 從 React 來說,其生態更強大了。React Native 已經使得 web 和 native 應用可以共享業務邏輯部分的代碼了;ReactXP 的目標是要讓 web 和 native 應用共享 view層代碼,如果能實現,真是碉堡了;
3. 從前端開發者來說,能做的事越來越多了,擔子越來越重了。
用戶二:
我剛試了一下,web下的體驗爽爆了。還帶動畫的,嗬嗬。
個人覺得ReactXP會有很好的市場。
用戶三:
ReactXP 的意思是 React Cross Platform。那如何跨端的呢?在 React 和 React Native 封裝一個抽象層,也是一個子集,提供跨平台的 API。底層 iOS/Android 就是跑RN,Web 就是 React,其他平台就用 Electron 把 Web 包起來……跨端了。看看目前的組件列表,相當的匱乏。
理想很美好,現實卻很骨感。還有很多抽象要去做,還有很多坑要去填,要跨多端犧牲的是每個端的性能,特性,那又有多少需求是要跨那麼多端實現的呢?不過可以看清兩個方向,一是跨端是一個趨勢,二是跨端這件事情落地到了前端!
用戶四:
看了一下介紹,不是很看好。
React本身就沒有屏蔽,也不想屏蔽底層細節。現在搞出一個 XP 來,無非是提取子集的玩法,未來空間有限。
其實看看桌麵端的曆史,大致可以猜一下,真正的跨平台 UI 框架,還得立足於自己畫控件,封裝原生能走的路有限。
而且我覺得這個方案不像微軟的大手筆。按照微軟的量級,難道不是應該重新發明一遍 UI 樹和樣式表甚至 api,搞出一個新平台來全麵覆蓋原有平台嗎?
或者幹脆把 WPF 和 blender 那套東西整理整理,搞一個天上地下,無所不包的客戶端全家桶出來。
用戶五:
React的各種衍生技術,最有空間的還是RN,最根本原因在於Facebook的創新精神有助於推動整個技術不斷向前發展。微軟從windows之後,陸續出了一些office之類的大作,企業成了行業壟斷者之後,基本喪失了創新能力,隻能通過不斷升級老產品、收購其他公司之類的商業運作套路來維持市場地位。
這次的reactXP,在思想上無疑是可以肯定是正確的:跨平台會是後麵一段時間裏,前端技術將要突破的一個大趨勢——雖然並不確定挖掘機技術最終哪家強,但火熱爆炒的環境,對加速突破行業技術瓶頸,是一件好事。
對於某些無視行業發展趨勢,各種抵製創新的磚家,還是盡早醒醒吧——那些嘲笑降低社會成本的創新的人,隻是因為他們太過於害怕新技術給他們帶來的衝擊和改變。等最後才被動發現誰動了你的奶酪,結果往往是比較可悲的。在技術圈裏混,如果對新技術,新方向都一棍子打死,缺乏一種冷靜客觀看待的心態,基本說明自己心態不經意間已經趨於保守,及時調整心態,在到達沙灘醒悟過來,於人於己,都是一種小幸運。
對於ReactXP大家又有什麼看法呢?如果你是開發者的話,現在微軟已經將ReactXP上傳至GitHub,大家可以使用ReactXP網站獲得這個新的ReactXP開源庫。