Skip to content
Compare
Choose a tag to compare
@roland-reed roland-reed released this 23 Jan 05:45
· 17 commits to master since this release
23e039f
  • 全面支持 React v16 新特性
  • 重构 findDOMNode ,遇到注释节点返回 null
  • 支持 React 组件返回任何数据类型,如数组,字符串,数字,布尔,但对于 undefined, null, boolean 不会生成真实 DOM
  • 支持 componentDidCatch 钩子与整个错误边界的逻辑
  • 支持 createPortal
  • 分离出 Vndoe 模块,并且附带其节点关系属性(return, sibling, child),
    • return 相当于之前的 hostParent,
    • sibling 相当于之前的 nextSibling,
    • child 相当于之前的 firstChild
  • 模仿 React v16,使用 stateNode 属性代替旧有的 hostNodeinstance
  • React.ChildrenflattenChildren 底层依赖的方法由 flattenChildren 改为 operateChildren,让其更具通用性, flattenChildren 更名为 fiberizeChildren,产出一个带链表结构的数组。
  • 新的架构:元素虚拟 DOM 与组件虚拟 DOM 都有自己的更新对象,简化匹配算法
  • 简化 Refs 模块
  • 修复更新虚拟 DOM 时,namespaceURI 丢失的 BUG
  • componentDidUpdate 现在只有两个参数,lastPropslastState
  • 优化 fiberizeChildren 的性能
  • 修复受控组件在 textarea, radio 的 BUG,将受控事件放到用户 � 事件后集中执行
  • 添加焦点系统的支持(全局 focus, blur 事件提前监听,移除添加节点的 Refs.nodeOperate 开头)
  • 解决多次引入 React 时,事件系统的 option.async 有问题的 BUG
  • 简化 createPortal 的实现
  • 支持 React v16.2 的 Fragment 语法糖
  • cloneElement 需要处理 disposed 元素
  • cloneElement 对于 props 的虚拟 DOM 进行复制
  • 设置属性的时机提前
  • 修复了一个移动端 scroll 事件的问题