react与backbone比较

来源:互联网 发布:在哪里学淘宝美工 编辑:程序博客网 时间:2024/06/10 02:18

1.为什么react那么火?

在web开发过程中,要将变化的数据渲染到页面上,必然需要对DOM的操作,频繁的DOM操作降低页面性能,而react的核心是虚拟DOM,并没有真实的操作DOM,而是用js构建出新的DOM树(只是一种内存数据),react将当前该DOM树与上一次的DOM树进行对比,得到DOM结构的区别,然后将需要变化的部分进行实际的DOM更新。

2.Backbone
Backbone帮助我们结构化应用的代码。它提供键值对形式的事件绑定、自定义事件、集合等功能。它还提供了很多关于视图的API,提供描述式的事件处理程序。

优点:

  • 轻、快。
  • 清晰的结构和概念:

    • Model:储存数据的对象。
    • Template:通常跟一个Model相关。其数据来自模型对象或者是控制器。
    • Router:导航功能,处理SPA应用的导航,导航定义了应该显示哪个模版,并为这个导航生成一个对应的控制器对象。
    • View:视图,处理浏览器事件,把事件处理的结果发送给控制器对象。
    • Controller:控制器,为模版提供数据。
  • 第三方的模版引擎:underscore。

  • 没有双向绑定,数据必须显示修改。

缺点:
视图直接操作DOM,难以编写测试代码。

3.React

React是一个把数据渲染成HTML的框架。React的视图可以组合使用,这样就像自定义了多个HTML标签。在React里面,不能直接操作子组件。组件的更新需要通过更改数据模型,这样能使组件之间更加独立。
优点:

  • 基于组件的架构
  • 数据单向绑定,数据修改自动修改视图
  • 虚拟DOM:相较于其他框架更新视图的速度快
  • 视图的逻辑和行为甚至是样式都内聚在组件内部
    缺点:
  • 需要第三方插件(如react-route)才能实现导航
  • 应用比较复杂时,需要使用redux来管理数据和状态,否则应用的状态会变得不可控制。
原创粉丝点击