hushicai / hushicai.github.io

Blog
https://hushicai.github.io
27 stars 1 forks source link

React是什么? #1

Open hushicai opened 6 years ago

hushicai commented 6 years ago

React是一个用来构建用户界面的JavaScript类库。

React is a JavaScript library for building user interfaces.

React重新定义了用户界面的构建方式,核心思想:声明式和组件化!

声明式

React使用JSX来声明式地定义用户界面。

React项目经理Tom Occhino,曾经在React开发者大会上提到,React最有价值的是声明式的、直观的、语义化的编程方式!

声明式的视图可以让我们的代码具有可预测性(容易理解),并且更容易调试。

例如以下代码:

<Page>
  <Header />
  <Content />
  <Footer />
</Page>

我们可以非常自然、直观地理解这些代码。

React在底层会把这些直观的JSX代码翻译为类似React.createElement等JavaScript调用,并自动管理组件、子组件的实例化等。

组件化

React是一个专注于组件架构的类库。

在React应用中,一切都是组件!

组件并不是一个新的概念,它通常是指着某个独立功能或界面的封装,达到复用、或是业务逻辑分离的目的。

但React却提出了一个简化的组件模型:状态机!

所谓组件,就是一个状态机。

React将用户界面看做简单的状态机。

image

当组件处于某个状态时,那么就输出这个状态对应的界面。

当组件更新状态时,那么就输出新状态对应的界面。

然后React会负责以最高效的方式去比较两个界面,并最终更新视图。

React通过这种方式,可以很容易去保证界面的一致性。

小结

React可以让我们更轻松地创建用户界面。

在React中,组件是构建用户界面的基本单位,开发者所要做的事情就是,创建一个个独立的、可以重用的组件,然后组合它们,声明式地描述视图,剩下的事情交给React,React会负责在数据发生变化时更新视图。