怎麼評價 Facebook 的 Relay 框架?
這個框架有什麼優缺點,是否能使用在項目上?
相關鏈接:facebook/relay · GitHubRelay | A JavaScript framework for building data-driven React applications
唉,我說實話吧,一開始很期待,看了以後很失望,但同時又有點高興的感覺。
期待是因為之前吹得很厲害,感覺可以讓前後台數據通信一勞永逸了;
失望是因為看了看實例代碼,用起來真不是一般的麻煩:relay/MarkAllTodosMutation.js at master · facebook/relay · GitHub 一個 TodoMVC 你能給我整出這麼複雜的 mutation 來,大型應用我要去撞牆了。有點高興是因為和 Relay 比起來,Meteor 實在是太好用了。P.S. 即將發布的 Meteor 1.2 有官方 React 整合。感覺沒Meteor好用呀
剛剛發布Dev preview 應該還不是production ready,但是就react conf上的介紹,好壞還比較明顯
好:
- 由前端data driven, component 的數據既api
- 各個 component 自己決定自己的數據的長相(shape),而不是由父 component 層層傳進去
- query 的結構就是期望形狀的數據,無需 model 層
壞:
- 雖然不是複雜的ql,但是還是ql
- 無緣無故多了一層graphql server
- 看到 schema 出現我已經瞎了
相比而言我跟喜歡與其類似的 netflix的falcor ,基本思想類似,由前端決定數據形狀,同樣是 dev preview 版本,試用了還不錯,至少不是QL,而且 falcor server 來聚合 micro services 的數據也不會顯得多餘。 附上自己試寫的 todomvc 例子 jcouyang/react-falcor · GitHub (WIP)
好消息!
Facebook 重寫 React 和 Relay 框架,旨在提升性能!
Facebook 已完全重寫用於構建用戶界面的 React 框架。新的項目名稱為 React Fiber,其在公布之前就已在 http://Facebook.com 運行使用。現在,Facebook 將此項目公示,並計劃在今年推出 React 16.0 之後將它向開發者開放。
同時,Facebook 也表示已重寫 React 的數據驅動框架 Relay。
React Fiber
React Fiber 包含 React 最初的開發理念,也兼容現有的基於 React 的應用程序。Facebook 將其作為 React 框架未來改進和功能開發的基礎。
關於為何重寫 React 的問題,React 核心開發團隊的 Ben Alpert 說道:「這並不代表舊代碼存在問題,而是我們希望從一個新起點開始,繼續往前發展。」這意味著新代碼從一開始就是可擴展的。Alpert 強調,重寫後的框架會帶來一些突破性的變化,強大的 API 合約將給項目的更新帶來靈活性。
Relay Modern
Relay 的重寫主要在其性能和可擴展性。Relay 將 React 與 Facebook 的 GraphQL 查詢語言結合起來成就了 Relay Modern,它旨在推動 Relay 的理念,並克服原始設計的一些限制,即簡化設計以提供框架整體性能。
Relay Modern 保留了 Relay 的最佳部分:
- 共同定位的數據和視圖定義
- 聲明式數據提取
同時:
- 簡化 API
- 增加新功能
- 簡化框架大小以提升性能等
Facebook 表示,當他們將 Facebook 應用程序中的 Marketplace 選項卡從「Relay」轉接到「Relay Modern」時,Android 上交互的時間平均提高了 900ms,使應用程序的響應更敏捷。
原文:techcrunch
編譯:開源中國
相關鏈接
- ReactJS 的詳細介紹:點擊查看
- ReactJS 的下載地址:點擊下載
文章素材來源【開源中國社區】 Facebook 重寫 React 和 Relay 框架,旨在提升性能
唉,一看描述就不行。你想想工程量和請求數。另外好不容易數據能統一管理了,又給拆成碎片。你能相信facebook真的搞過工程......
目前在使用relay開發,relay 相對於apollo來說,入門稍微複雜些,但是周邊有許多可使用的模塊,
在開發上還是比較方便
正在入坑的我表示用起來相當麻煩。需要先理解GraphQL與React的相應概念才能去看Relay。
剛瀏覽了一下,很多問題需要解決或者等待方案。覺得還是要等等
推薦閱讀:
※中美互聯網公司中,工程師和產品經理的職責和定位有何差異?
※Facebook Timeline 的發布將對 Facebook 營銷造成什麼影響?
※Facebook 董事會成員有哪些人?
※如何評價 1 月 21 日李毅吧等 100 多個貼吧聯合出征 Facebook?
※Facebook 為什麼決定關閉 Parse?
TAG:Facebook | 前端開發 | JavaScript | 前端框架 | React |