昨天,微軟在Github上發(fā)布了一個(gè)新的開源項(xiàng)目:ReactXP,吸引了不是前端和移動(dòng)開發(fā)者的關(guān)注。
Github鏈接:https://github.com/microsoft/reactxp
項(xiàng)目官網(wǎng):https://microsoft.github.io/reactxp/
從名字來看,它是基于React框架的,官網(wǎng)上微軟稱之為跨平臺(tái)App開發(fā)工具庫(kù),并羅列了它的主要特性,包括:
基于React.js和React Native構(gòu)建。
XP表示支持跨平臺(tái),目前支持Web瀏覽器、Android、iOS,計(jì)劃支持UWP,至于其它桌面平臺(tái)則建議使用類似Electron這樣的工具。
創(chuàng)建響應(yīng)式的,接近原生應(yīng)用體驗(yàn)的App.
簡(jiǎn)單來說,ReactXP為React.js和React Native增加了一個(gè)中間層,讓React Web應(yīng)用的API與React Native兼容。
在官網(wǎng)的文檔里,官方團(tuán)隊(duì)進(jìn)一步解釋了圍觀群眾可能疑惑的一些問題。
ReactXP與React Native的關(guān)系
官方解釋說,ReactXP構(gòu)建于React Native之上,提供幾乎與RN相同的Web版本API,但ReactXP并不是RN的子集或超集。
ReactXP最重要的特點(diǎn)是它的API的一致性,在某些情況下,平臺(tái)之間的實(shí)現(xiàn)不同,API會(huì)在一些平臺(tái)能使用,在另一些平臺(tái)則是無操作(但能被調(diào)用),ReactXP盡可能的不讓用戶去關(guān)心平臺(tái)區(qū)別。
使用ReactXP能過直接調(diào)用RN或React DOM,但這時(shí)需要根據(jù)條件判斷平臺(tái)來進(jìn)行相應(yīng)的操作。
ReactXP與React Web的異同
如果關(guān)心React發(fā)展的同學(xué)可能發(fā)現(xiàn),微軟的這個(gè)東西怎么似乎見過。不錯(cuò),早在15年,淘寶FED就推出了一個(gè)React Web項(xiàng)目,使用React Native兼容的API開發(fā)Web應(yīng)用。后來Twitter也推出了一個(gè)React Native for Web項(xiàng)目,與前者目標(biāo)相似,不過在國(guó)外這個(gè)更為知名。
微軟解釋了ReactXP和React Native for Web的不同。ReactXP只包含能夠跨平臺(tái)的API和組件,它的目標(biāo)之一是讓開發(fā)者使用自己喜歡的環(huán)境開發(fā)應(yīng)用,并且有信心讓應(yīng)用跑在不同的平臺(tái)上而不用過多的擔(dān)心兼容問題。ReactXP構(gòu)建于React.js和React Native之上,目標(biāo)是跨平臺(tái),而React Native for Web目標(biāo)是Web平臺(tái)。
但事實(shí)上微軟的這個(gè)理念也并不新鮮,淘寶FED后來又在React Web的基礎(chǔ)上弄出了Rax項(xiàng)目,這個(gè)項(xiàng)目野心更大,不但要跨平臺(tái),而且將RN、Weex、Node.js視為容器,Rax的目標(biāo)還要能夠跨容器,這個(gè)更厲害。
React Native for Web項(xiàng)目: https://github.com/necolas/react-native-web
React Web項(xiàng)目:https://github.com/taobaofed/react-web
Rax項(xiàng)目:https://github.com/alibaba/rax
微軟發(fā)布ReactXP意味著放棄Xamarin嗎?
前不久微軟發(fā)布Visual Studio時(shí),將支持React Native for iOS作為其重要特性。微軟也一直是React社區(qū)的重要參與者,之前提供了React Native的熱更新工具CodePush,也一直將支持React開發(fā)作為重要目標(biāo),這種熱心姿態(tài)幾乎讓人忘記微軟還有自己的跨平臺(tái)開發(fā)工具Xamarin.
在文檔里,ReactXP與Xamarin進(jìn)行了一波商業(yè)互吹,并且說兩者的目的并不相同,一個(gè)給C#開發(fā)者使用,一個(gè)給前端開發(fā)者使用。
從文檔看不出微軟對(duì)Xamarin的態(tài)度,不過綜觀微軟的動(dòng)作,Xamarin的地位無疑是降低了。
ReactXP有前途嗎?
ReactXP由Skype團(tuán)隊(duì)開發(fā),想想他們需要支持的平臺(tái)之多,瞬間就理解他們?yōu)槭裁匆_發(fā)這個(gè)項(xiàng)目。不過,除此之外,ReactXP并未有更多的采用者。
從目前來看,ReactXP的賣點(diǎn)在于對(duì)Windows平臺(tái)的支持,不過這一項(xiàng)還是In Progress,如果以后正式支持的話,開發(fā)Windows應(yīng)用又多了一個(gè)可選的框架。
至于如此廣泛的跨平臺(tái),目前來看有這個(gè)需求的并不多,而且ReactXP也并不是唯一答案,在這一點(diǎn)上吸引力不大。
ReactXP的意義
不是每一件事物都存在值得討論的意義,不過ReactXP作為React生態(tài)里的最新一員,可以說稍稍拓展了React的邊界,這就是它的意義之所在。
在之前,React的跨端,是由各種平臺(tái)的Native延伸框架支持的,每多一個(gè)平臺(tái)就要開發(fā)一個(gè)Native,開發(fā)者又要重新寫一遍,這很不環(huán)保。ReactXP則讓我們看到了大一統(tǒng)的可能,未來如果平臺(tái)有變化,或者出現(xiàn)新的平臺(tái),不需要開發(fā)者動(dòng)手,臟活全讓框架開發(fā)者給干了,豈不是美滋滋。
當(dāng)然,這個(gè)理想過于美妙,現(xiàn)實(shí)肯定會(huì)有各種坑,也一定會(huì)伴隨著各種爭(zhēng)論,開發(fā)者根據(jù)自己的需要,權(quán)衡利弊,選擇最適合自己的工具就好。
活動(dòng)推薦:
由InfoQ主辦的第二屆GMTC全球移動(dòng)技術(shù)大會(huì)開始報(bào)名了!大會(huì)將于6月9-10日在北京舉行。本屆大會(huì),我們將探討智能時(shí)代的大前端,在動(dòng)態(tài)化、React Native等逐漸流行的現(xiàn)在,移動(dòng)和前端的融合將會(huì)發(fā)生怎樣的變化?點(diǎn)擊閱讀原文進(jìn)入大會(huì)官網(wǎng),現(xiàn)在報(bào)名享8折優(yōu)惠!
評(píng)論列表