冒死总结一下React!开始作吧!
React是什么?
React 是 Facebook 推出的一个用来构建用户界面的 JavaScript 库。具备以下特性:
- 不是一个 MVC 框架
- 不使用模板
- 响应式更新非常简单
- HTML5 仅仅是个开始
- 组件
- JSX
- Virtual DOM
- Data Flow
React的核心思想就是:组件封装。
每个组件有自己的state和UI,当状态改变时,自动渲染整个组件。
这种方式可以让我们不再操作DOM元素去改变UI。
写一个最简单的例子:
import React from 'react'; export default class Video extends React.Component{ render(){ return( <h1>this is Video</h1> ) } } let root = doucment.getElementById('root'); render(<Video/>,root)
组件
React应用都用由组件搭建起来的。所以说组件是react 中的重头。
组件包括两个核心部分:props和state。
props:可以看作是组件的属性
state:可以看作是组件的状态
JSX
这种写法其实就是将js和html写到一起,刚开始的时候可能会让很多人不爽,因为他违背了“表现和逻辑层分离”的思想;但是前端要想真正的做到组件化,封装html是必须的,所以能在js处理逻辑的时候将html封装进去,React的jsx还是很不错的,如果你写了一段时间之后,我觉得你会喜欢这种写法的。
Virtual DOM
虚拟DOM ,React横空出世的时候一面大旗就是Virtual DOM,你我都知道在web中操作DOM是一件非常消耗新能的一件事,如果大面积的操作DOM,画面就会和用2g流量来看大片一样!
所以React就推出了Virtual DOM,组件的结构会映射到这个虚拟DOM上面,React在Virtual DOM上面实现了一个叫diff算法,当一个组件需要重新渲染的时候,diff算法会找到需要刷新的DOM节点,在虚拟DOM中修改之后再更新到浏览器的时间DOM上去,所以我们操作的不是整个DOM树。这个Virtual DOM 是一个JS数据结构,所以性能会比原声DOM高很多。
Data Flow
和angular不同的是React采取的是”单向数据绑定“。
文章评论