为什么会有react?

React是 Facebook 推出的一个用来构建用户界面的 JavaScript 库。 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。

为什么会有react?Facebook为什么要创造React?

Facebook认为MVC无法满足他们的扩展需求,由于他们非常巨大的代码库和庞大的组织,使得MVC很快变得复杂,每当需要添加一项新功能或者特性时,系统的复杂就成级数的增长,致使代码变得脆弱而不可预测,结果导致他们的MVC正在土崩瓦解。认为MVC不适合大规模的应用。当系统中有很多模型和相应的视图时,其复杂度就会迅速扩大,非常难以理解和调试,特别是模型和视图可能存在双向数据流动。

解决这个问题需要“以某种方式组织代码,使其更加可预测”,这通过Flux和React已经完成

Flux是一个系统架构,用于推进应用中的数据单向流动。React是一个JavaScript框架,用于构建“可预期的”和声明式的”Web用户界面”,它已经使Facebook更快地开发Web应用。

主要来讨论React方面的问题:

React用来解决什么问题,官方网站上这样说道:

We build React to solve one problem:building large applications with data that changes over time.

从React官方网站上,通过《Why did we build React?》了解到创建React文档的四个原因:
1.React不是一个MVC框架,React是一个构造可组合式用户界面的库。它鼓励创建可重用的UI组件会随着时间而改变的数据。
2.React不使用模板
传统上,web应用UIs使用模板或者html指令构造。这些模板规定一套完整的抽象使你可以去构建你的UI
不同的是,React处理构建用户界面通过将他们分解为组件。这意味着,React使用一个真正的,全功能的编程语言去渲染视图。
3.响应式更新非常简单
在一个传统的JS应用中,需要考虑数据变化然后指示DOM做出变化,使其保持最新的。甚至AngularJS,提供一个声明式接口经由指令和数据绑定请求一个关联的函数去手动更新DOM节点。

React采用不同的方法,当组件第一次初始化时,render方法调用,为试图生成一个轻量级的表现。通过这个表现,产生一个标签字符串,然后插入文档中。当数据变化时,render方法再次被调用。为了尽可能有效的完成更新,我们比较值钱调用的render返回的值与新的值,然后产生一个最小的变更去应用DOM中。

render返回的数据既不是一个字符串也不是一个DOM结点。它是一个轻量级的类型,描述DOM应该是什么样子的。

4.HTML5仅仅是个开始

因为React有自己轻量级的文档表现,我们可以用它做一些很酷的事情

  • Facebook动态表格可以通过渲染取代HTML.

  • Instagram是一个’single page’网页应用完全由React和Backbone.Router构建的。设计者可以像通常一样使用JSX编写React代码。

  • 我构建内部的应用雏形运行React在一个web工作站上,使用React去驱动本地ios视图通过一个Objective-C桥。

  • 你可以运行React在服务器上,便于SEO、性能、代码分享和项目灵活性。

  • 事件在全部现代浏览器(包括IE8)下表现一致性还有符合标准化,并且自动使用事件委派。

React特点:

  1. 声明设计------React采用声明范式,可以轻松描素应用

  2. 高效------------React通过对Dom的模拟,最大限度的减少与Dom的交互

  3. 灵活------------React可以与已知的库或框架很好的配合

  4. JSX----------JSX是javascript语法的扩展,React开发不一定使用JSX,但我们建议使用它

  5. 组件---------通过React构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中

  6. 单项响应的数据流---------React实现了单项响应式的数据流,从而减少了重复代码这也是它为什么比传统数据绑定

更多React相关技术文章,请访问 React答疑 栏目进行学习!

以上就是为什么会有react?的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » React 答疑