React真的让人兴奋

banq 15-08-21
              

如果说jQuery曾经主宰前端,那么2015年以后将是React.js的地盘。React真的让人兴奋,值得炒作。

React: The Hype is Real - Treehouse Blog一文谈论了这种演进趋势。

以前该文作者一直使用JQuery,而React初期是被Instagram/Facebook用来建立用户界面的Javascript库包,它因为被很多公式使用而引人注目,这些公式包括: Netflix奈飞, Walmart沃尔玛, Tesco, Airbnb 和Flipboard ,这些大公式都将他们的UI代码迁移到React.js。

作者列出了2007年以来前端的主流趋势图:




他认为React类似当初热门的JQuery的二次来袭,采取一种Javascript框架的原始动机是来自于哲学。(banq注:三观不正,无法在IT混啊。)

他分析了当初JQuery大热的原因,当时有Prototype, MooTools 等竞争者,jQuery的不同之处在于大量使用CSS的selector选择器,这是抓住了当时人们需要渐进增强(Progressive Enhancement)的哲学概念(见:理解“渐进增强(Progressive Enhancement)”),这意味着:如果你将Javascript从你的站点删除关闭,你的网站还是能被搜索引擎收录,还是能够被显示屏显示阅读,最重要的是,你的网站功能并没有被破坏,它鼓励了内容和行为如CSS风格进行分离,因此人们会追随jQuery。

历史同样在React身上重演,React是使用一些离散碎片组件构建,你可以定义组件,然后将任何功能加入其中,这对创建动态用户交互界面是非常有效的,能够反复一遍遍被重用。

不像同时代其他框架实现,它注重one-way数据绑定,这种绑定方式特点是:当应用程序改变状态以后,它只需要重新渲染状态影响的部分,而不是全部,它通过使用Virtual DOM开源组件的差别算法,将虚拟DOM和浏览器中实际DOM进行比较,然后对状态改变后与原来DOM不同的部分进行渲染,但是这还不是让你激动的地方,更让人激动的是,因为React在首次浏览时已经加载,那么就提供了一种Universal普适的或Isomorphic同构的Javascript应用实践之道。

一种Universal JavaScript应用是:客户端和服务器端代码是相同的,你再也不必与你的Express或Rails模板打交道了,这些模板包括使用ERB Jade或其他模板,你只需要使用React,你能让React渲染你的组件到字符串,这个字符串能够通过HTTP响应内容体发送到客户端,在客户端React的事件处理器中,你可以加入在服务器端使用过的同样组件,这真是难以置信的节约时间啊,而且减少代码重复率。

这里提到的代码重复,是指你没有必须使用一种语言创建视图(如用Jsp创建视图),然后再使用React重新实现一遍一些功能,这种在服务器附加的渲染好处也是jQuery当初受欢迎之处,你的页面还是按照原来方式索引,你还是能够使用更多Javascript进行渐进增强。

总之,React重复了当初jQuery哲学,React就是第二个jQuery,而且更好,你的代码没有必要在服务器和客户端两边重复,使用同样代码与逻辑。

[该贴被banq于2015-08-21 10:06修改过]

              

4
lostalien
2015-08-21 10:57

2015-08-10 15:58 "@banq"的内容
React的DOM算法采取差额更新,更新量最小 ...


哦这样。。。我一直以为dom的渲染方式只能在浏览器层面做,原来js也可以控制这一点。。。

好神奇,有空试试。。。。。。。。。

hbbbs
2015-08-24 15:03

React 体积有点大....