他分析了当初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,而且更好,你的代码没有必要在服务器和客户端两边重复,使用同样代码与逻辑。