Yarn是由Facebook开发的,可以认为它是NPM工具的改良版,因为它支持并行操作,这是npm所没有的功能,且可以更有效地利用了网络。
Yarn受欢迎的原因包括:更快地的执行速度、强大的工作系统、许可检查功能、以及与NPM和和Bower软件包管理工具的完美兼容。函数式编程 将运算过程定义成不同的函数
React 基于 Virtual DOM 实现了一个 SyntheticEvent (合成事件)层,我们所定义的事件处理器会接收到一个 SyntheticEvent 对象的实例,它完全符合 W3C 标准,不会存在任何 IE 标准的兼容性问题。并且与原生的浏览器事件一样拥有同样的接口,同样支持事件的冒泡机制,我们可以使用 stopPropagation() 和 preventDefault() 来中断它。
所有事件都自动绑定到最外层上。如果需要访问原生事件对象,可以使用 nativeEvent 属性。高阶组件
组件优化:
- 多使用纯函数:无依赖;相同输入相同输出;重复使用。
- PureComponent:本质上讲,PureComponent就是重写了shouldComponentUpdate,对nextProps和nextState与当前state和props做浅比较,性能上优化。
- Immutable:使用Immutable共享数据节点,节省渲染。
- key:列表渲染指定key,相同key不渲染;尽量不要使用index当key,最好是id。
- react-addons-pref:插件量化性能优化效果。
6.react 源码结构
- addons:工具方法插件:PureRenderMixin、CSSTransitionGrouo、Fragment、LinkedStateMixin。
- isomorphic:包含一系列同构方法。
- shared:公用方法和常用方法。
- test:测试方法。
- core/tests:边界错误的测试用例。
- renderers:React的核心代码,包含大部分功能实现,因此进行单独分析。