https://github.com/FE-star/2018.1/issues/24
https://www.w3cplus.com/javascript/the-inner-workings-of-virtual-dom.html
react 动态(运行时或者编译时)类型检查--propsType
TypeScript ? flow?是静态时类型检查?
受控组件,不受控组件,(能不能用state去控制?这样表达?)
setState有时是异步的,有时是同步的?
多个组件setState,如果同步就会有问题,异步才合理
在一个组件里执行forceUpdate,并不一定导致其子组件强制刷新
shouldComponentUpdate,无法阻止forceUpdate
父组件的componentDidMount一定在所有子组件componentDidMount执行后才执行
在componentDidUpdate里直接执行setState会让组件死循环
react生命周期
react diff算法:
1分层对比,
2.当有key时,会基于key匹配,否则按顺序匹配;匹配比较然后替换
3.根据key在组件里做映射??
//diff源码:
https://github.com/Matt-Esch/virtual-dom/blob/master/vtree/diff.js
渲染分为首次渲染和再次渲染
再次渲染会对比patch,生成完后再一次性渲染(一次性执行所有patch)
pure component?
shouldComponentUpdate //浅比较
pure component 搭配不可变数据,如何减轻它的创建??
{this.props.items.map(i => <Cell data= {i} options={this.props.options || []} />)}
Stateless Component functional Component
Functional Component性能是最低的
Container Component 包含逻辑处理,不可复用
Presentational components 重用率很高
ppHOC 高阶组件
@ppHOC装饰器
不要在render里面写HOC,否则会疯狂重绘
React 数据流 用Flux ,Rudex,DVA,Mobx?
redux 异步还有redux-saga,redux-thunk,redux-oberserver