js-learn-note-2018

  1. Yarn是由Facebook开发的,可以认为它是NPM工具的改良版,因为它支持并行操作,这是npm所没有的功能,且可以更有效地利用了网络。
    Yarn受欢迎的原因包括:更快地的执行速度、强大的工作系统、许可检查功能、以及与NPM和和Bower软件包管理工具的完美兼容。

  2. 函数式编程 将运算过程定义成不同的函数

  3. React 基于 Virtual DOM 实现了一个 SyntheticEvent (合成事件)层,我们所定义的事件处理器会接收到一个 SyntheticEvent 对象的实例,它完全符合 W3C 标准,不会存在任何 IE 标准的兼容性问题。并且与原生的浏览器事件一样拥有同样的接口,同样支持事件的冒泡机制,我们可以使用 stopPropagation() 和 preventDefault() 来中断它。
    所有事件都自动绑定到最外层上。如果需要访问原生事件对象,可以使用 nativeEvent 属性。

  4. 高阶组件

  5. 组件优化:

  • 多使用纯函数:无依赖;相同输入相同输出;重复使用。
  • 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的核心代码,包含大部分功能实现,因此进行单独分析。