React-Canvas、React-js、React-Native在用途、語言本質、性能表現等方面,各有什麼異同?


React.JS的本質是一套Component的復用機制。採用它的一個基本動力在於,幾乎所有基於樹形方式組織的UI,都可以得益於 React.JS 的Virtual DOM所帶來的性能提升。

但是一旦你開始用React.JS,你會發現傳統 Web 開發方法在遠離你。你更多地考慮通過Component來分離你的UI,而不是DOM、CSS和JS。當你越來越多地以Component為邊界來組織和思考,一個全局的HTML文件,CSS文件的作用越來越少。React的出現,前所未有地淡化了傳統的HTML,CSS,JS三者相對獨立的組織和編程方式,甚至降低了對jQuery的需求(我突然發現我我的項目中頭一次沒有了jQuery)。這個思想,從本質上更像之前 Rich Client 的開發方式。

由於DOM地位的淡化,使得React出現其他各種Render方式成為可能,今天出現了React-Canvas,將層次結構渲染到Canvas上,也許明天就會出現 React-GL,將UI渲染到 WebGL Canvas上,後天將UI渲染到了PDF甚至SVG中。這些都能從React的基本技術和架構上得益。

從這個角度想,React-Native就很自然出現,只不過這塊畫布從Web DOM(或者Canvas)變成了iOS的UIView。當然,React-Native 將JS和Node的Module Driven Programming的方法也同時帶進了Native Client領域,更帶來了動態更新應用邏輯的能力(用JSCore帶來一定程度的更新是符合蘋果要求的)。


reactjs的本質是web前端框架,用來架構前端視圖,reactnative是做移動端app的,只不過是用reactjs那套模式,底層是對native code的封裝及調用,目的性就完全不一樣了。至於reactcanve~算是一個腦洞比較大的項目了,因為canvs的動畫效果比較好所以用來直接做web交互可能會有不錯的表現,但是完全捨棄dom帶來的是web語意的喪屍,比如你的一個按鈕實際上變成一個圖層了,個人表示,還是洗洗睡吧


React-React, 此法寶移除, 可以自動生成對應的React-XX, 無論是React-Browser還是React-Notepad, React-Vim, React-Sublime, 只要是React-XX, 此法寶都可以Reactify.

地址: http://tinyurl.com/nggqtzu


推薦閱讀:

Vue.js 這個框架怎麼樣評價?
如何看待 svelte 這個前端框架?
React 組件設計思路?
js 變數聲明 函數聲明 變數賦值的實現機制疑惑?
穩妥構造函數模式和工廠模式創建對象有什麼區別?

TAG:Facebook | iOS應用 | JavaScript | Android開發 | React |