- 修正 onChange 事件
- 重构 diffProps 模块的实现
- 支持组件的isMounted方法
- 添加beforeRender, beforePatch, afterPatch钩子
- 添加lib/ReactInputSelection.js
- 统一所有操作虚拟DOM的方法的参数(mountXXX, updateXXX, alignXXX系列)
1 第一个参数为旧真实DOM或旧虚拟DOM 2 第二个参数为新虚拟DOM 3 第三个参数为父虚拟DOM(可能不存在,那么后面直接跟第四,第五) 4 第四个参数为上下文对象 5 第五个参数为任务调度系系统的列队
- 使用全新的方式获取元素的命名空间
- 全新的节点排序算法(diffChildren)
- renderByAnu在全局渲染后应该置空CurrentOwner.cur, 防止影响其他虚拟DOM
- 完善createStringRef方法,应该能抛错与删除无用数据
- 简化createClass
- 修正flattenHooks BUG, 如果hooks中只有一个函数,就不用再包一层
- 重构虚拟DOM树的实现,与官方React保持一致,即props.children现在是多种形态,延迟到diff时才创建用于比较的vchildren
- 修正disposeElement,如果存在dangerouslySetInnerHTML的情况,需要清空元素内部,不走遍历子虚拟DOM的分支
- 修正diffProps, SVG的元素是区分大小写 如viewBox preserveAspectRation
- 组件更新时,要检测context是否改变
- 为事件对象实现persist方法
- 修正unstable_renderSubtreeIntoContainer的回调的this指向问题
- 修正unmountComponentAtNode BUG, #text改为 #comment
- 修正cloneElement BUG, 确保children与_owner正确传入
- 修正ref机制,如果为字符串时,通过createStringRef方法将当前ref, owner传入,返回一个curry方法,在cloneElement时 createStringRef创建的方法会再被整合到新ref方法的内部,确保旧的owner再次被更新
- 修正getNs方法的实现(原先是使用hash表进行穷举,但svg文档也有a, script ,style元素,导致无法区分)
- 用户在componentDidUpdate使用setState是不当操作,导致进入死循环,改用定时器减缓调用频率,防止页面卡死(官方React也存在类似的机制)
- disabled的元素不能触发点击事件
- 修正mouseenter/mouseleave在IE6-8中的BUG,涉及到relatedTarget的正确获取与LCA处理
- 简化alignVnode的逻辑,减少插入列队的生成
- 重构setStateImpl,
_component更名为__component,_currentElement更名为__current- react/lib中添加一些简用的外围模块,如ReactComponentWithPureRenderMixin,shallowCompare,sliceChildren
- event.originalEvent更名为 event.nativeEvent
- 修正polyfill中forEach的BUG
- 移除scheduler模块
- 移除instanceMap模块
- 修正typeNumber在iE6-8下的BUG
eventSystem.addGlobalEventListener更名为eventSystem.addGlobalEvent- 规避insertBfore在IE8下第二参数不能为 undefined的问题
- 修正ref延迟执行的BUG,组件所在的vnode如果有ref属性,那么它应该放到此组件的
__pendingRefs数组中,而不是放在父组件的__pendingRefs数组 此外__pendingRefs数组里的元素由对象改成函数 - 确保组件在componentDidMount钩子执行setState后,所有回调应延迟到componentDidUpdate外执行
- 确保mountComponent中实例应该尽快保存到vnode中
- 修正updateElement方法中只执行一次dangerouslySetInnerHTML的BUG
- 处理mouseenter/mouseleave的兼容问题
- 处理focus/blur的兼容问题
- 处理用户在render方法 return this.props.children 的情况,需要将数组转换为单个虚拟DOM
- 处理两个组件虚拟DOM都没有实例化的情况
- 只回收文本节点
- 支持mouseenter/mouseleave及重构事件系统
##1.0.6
- 重新支持chrome DevTools
- 添加对Immutable.js的支持
- 修复用户在componentWillUpdate/shouldComponentUpdate/componentDidUpdate钩子中执行setState引发死循环的BUG
##1.0.5
- 优化scheduler机制
- 实现对createFactory的支持
- 优化dispose模块
- 使用typeNumber代替typeof关键字,减少打包后的体积
##1.0.4
- 修正 unable to preventdefault inside passive event listener due to target 的错误处理, 这是chrome51+, 为了提高性能,默认对touchmove/mousemove/mousewheel事件禁用preventDefault方法引发的问题
- 销毁元素节点,彻底清除_component与__events引用
- 取消refs.xxx = null 操作,确保组件销毁后可能还进行动画,这时会有DOM操作不会报错
- 对props.children进行增强,支持更多合法的类型
- 实现对createClass的支持
- 实现对mixin的支持
##1.0.3
- 实现unstable_renderSubtreeIntoContainer, findDOMNode, isValidElement方法
- 实现对Children的完整支持 (only, count, forEach,map, toArray)
- 实现focus, blur, wheel的兼容处理,
- 修正更新组件时,没有添加defaultProps的BUG
- 修正diffProps一些错别字
- 实现事件对象pagex,pageY,which,currentTarget的兼容
- 修正用户在componentWillMount时调用 setState引发的BUG
- cloneElement应该能处理数组并取出其第一个元素进制复制
- 取消事务机制,改成调度任务
##1.0.2
- 兼容IE,实现对应的polyfill文件
- 实现对IE6-8的change, input, submit事件
- 添加对select.value的处理
##1.0.1
- 支持cloneElement
##1.0.0
- 发布anu