Facebook的反应与Web组件的优点和缺点(聚合物)

Facebook的React对于即将到来的Web组件规格有什么主要的好处,反之亦然(或者更多的苹果对苹果的比较是对Google的Polymer库)?

根据这个JSConf EU谈话和React主页,React的主要好处是:

  • 使用组件模型解耦和增加内聚力
  • 抽象,构成和expression
  • 虚拟DOM和合成事件(这基本上意味着他们完全重新实现了DOM及其事件系统)
    • 在IE 8上启用现代HTML5事件
    • 服务器端渲染
    • 可测性
    • 绑定到SVG,VML和<canvas>

(显然)除了这个虚拟DOM的概念之外,几乎所有提到的内容都是通过Web组件本地集成到浏览器中的。 我可以看到虚拟DOM和合成事件今天如何能够有效地支持旧浏览器,但是不会丢掉大量的本地浏览器代码,就像长时间在自己的脚下投射一样? 就现代浏览器而言,是不是很多不必要的开销/重新发明轮子?

以下是一些我认为 React缺less的Web组件会关心的问题。 如我错了请纠正我。

  • 本地浏览器支持(读“保证更快”)
  • 在香草JavaScript中编写JavaScript,在CSS中编写CSS,在HTML中编写HTML。
  • 使用Shadow DOM进行样式封装
    • React取而代之,这需要在JavaScript中编写CSS。 不漂亮。
  • 双向绑定