在我看 React 其實只是一個概念的實作。有去完 React Conf 的人當場就說了:「我現在才知道我不是去了 React 的 Conference ,而是一個 Functional Programming Conference。」[請求來源]
React 現在的實作用 Virtual Dom 和 HTML。Flipboard 的 react-canvas,或者 react-art 其實只是不同實作。 某天 Web Component 真的成了標準,不用幾天就可以有 react-web-component 的 demo 出現吧? (看過 Netflix React Conf 的 talk1 他們是這樣實作他們的 React Gibbon Widget 的)
React Native 是個很厲害的發明,但只要 Apple 哪天換了個規定,說 XXX 不準用在 iOS 裡,或是 iOS 9 出了別的完全不同的體系,React Native 馬上就死了,就像當初 Flash 的命運一樣。
只要有一天 Apple 有 JavaScriptCore ,無論 iOS 有甚麼變化也不能阻止他們吧,因為 react native 的架構完全是普通 App 會用到的。 Application Logic 因為在 JavaScript,需要改動的部份也就是 render engine,相對來說反而是 native 的開發者更新需要做更多事吧?
又像 AsyncDisplayKit 之所以要重新做那麼多事,不是他們沒事很閒,而是因為 UIKit 只能在 main thread render。要做到 Paper 那種高效能動畫只能把 View 分開在背景 render ,但那要手動做很多工夫, AsyncDisplayKit 就只是把這些抽出來而已。有一天如果 UIKit 支援了 async render ,那 AsyncDisplayKit 自然也無用武之地了。
那你要看看 React Native1
雖然要用它就要 commit 去用它整個系統,但不能不說它真的很方便,Reload 就可以更新 App 的效率實在比 Compile, Package, Deploy, Run 快得多了。