本书从几个维度介绍了React。
一是作为View库,它怎么实现组件化,以及它背后的实现原理。
二是扩展到Flux应用架构及重要的衍生品Redux,它们怎么与React结合做应用开发。
三是对它与server的碰撞产生的一些思考。
四是讲述它在可视化方面有着怎样的优势与劣势。
代码https://github.com/arcthur/react-book-examples
Facebook在2013年开源在GitHub上的JavaScript库。React把用户界面抽象成一个组件,按钮组件Button、对话框组件Dialog、日期组件Calendar。把代码和真实渲染目标隔离开来,除了可以在浏览器端渲染到DOM来开发网页外,还能用于开发原生移动应用。
DOM操作非常昂贵。性能消耗最大的就是DOM操作,而且这部分代码会让整体项目的代码变得难以维护。React把真实DOM树转换成JavaScript对象树,也就是Virtual DOM。
每次数据更新后,对发生变化的部分做批量更新。最大的好处其实还在于方便和其他平台集成。
函数式编程才是React的精髓。
JSX语法:DOM元素,组件元素,用Babel的JSX编译器,类XML语法的ECMAScript扩展。
const List = () => (
<div>
<Title>This is title</Title>
<ul>
<li> list item</li>
</ul>
</div>
);
React组件:Web Components的4个组成部分:HTML Templates定义了之前模板的概念,Custom Elements定义了组件的展现形式,Shadow DOM定义了组件的作用域范围、可以囊括样式,HTML Imports提出了新的引入方式。
而React的本质就是关心元素的构成,React组件即为组件元素。组件元素被描述成纯粹的JSON对象,意味着可以使用方法或是类来构建。React组件基本上由3个部分组成---属性(props)、状态(state)以及生命周期方法。
React数据流:在React中,数据是自顶向下单向流动的,即从父组件到子组件。这条原则让组件之间的关系变得简单且可预测。state与props是React组件中最重要的概念。props是React用来让组件之间互相联系的一种机制,通俗地说就像方法的参数一样。
React生命周期:分为挂载、渲染和卸载几个阶段。如果组件自身的state更新了,那么会依存执行shouldComponentUpdate、componentWillUpdate、render和componentDidUpdate。