[收藏]React-Canvas、React-js、React-Native在用途、语言本质、性能表现等方面,各有什么异同?

作者:沈嵘
链接:https://www.zhihu.com/question/29165419/answer/47490186
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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带来一定程度的更新是符合苹果要求的)。

你可能感兴趣的:([收藏]React-Canvas、React-js、React-Native在用途、语言本质、性能表现等方面,各有什么异同?)