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

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 157,656评论 24 688
  • 目录 爱你如日月星辰(1) 爱你如日月星辰(2) 爱你如日月星辰(3) 爱你如日月星辰(4)
    范太日记阅读 170评论 0 0
  • 紫煊: 我亲爱的宝贝!妈妈今天要鼓励你的是好习惯的养成。 妈妈发现你身上有很多好习惯。比如听故事。你对故事...
    窚煊阅读 122评论 0 4
  • 一、简介 1.音频可以分为2种(1)音效又称“短音频”,通常在程序中的播放时长为1~2秒在应用程序中起到点缀效果,...
    张璠阅读 838评论 0 0
  • 前两篇文章分别讲了以下内容,已用思维导图为大家梳理,未阅的小伙伴请点击下方链接。 第一篇:《P2P会员体系从0到1...
    一念凡心阅读 906评论 1 12