脚本宝典收集整理的这篇文章主要介绍了高性能迷你React框架anujs1.1.1发布,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
anujs1.1.1为了兼容国内最著名的UI库antd,在虚拟DOM树结构,ref机制,owner机制,svg的兼容上做了大量改进。到目前为止,只差两个组件没有兼容,相信下一个版本会搞定的。antd内部使用了大量的旧API与hack react的实现,因此兼容了antd,对其他比较正规的UI库,anujs也肯定能支持的。
https://github.com/RubyLouvre...
主要改良点:
修正flattenHooks BUG, 如果hooks中只有一个函数,就不用再包一层
修改虚拟DOM树的实现,与官方React保持一致,即PRops.children现在是多种形态,延迟到diff时才创建用于比较的vchildren
修正disposeElement,如果存在dangerouslySetInnerHTML的情况,需要清空元素内部,不走遍历子虚拟dom的分支
为事件对象实现persist方法
修正cloneElement BUG, 确保children与_owner正确传入
修正ref机制,如果为字符串时,通过createstringRef方法将当前ref, owner传入,返回一个curry方法,在cloneElement时createStringRef创建的方法会再被整合到新ref方法的内部,确保旧的owner再次被更新
修正getNs方法的实现(原先是使用hash表进行穷举,但svg文档也有a, script ,style元素,导致无法区分)
用户在componentDidUpdate使用setState是不当操作,导致进入死循环,改用定时器减缓调用频率,防止页面卡死(官方React也存在类似的机制)
使用
npm i anujs
或者使用架手架 https://github.com/Levan-Du/a...
npm i -g anu-cli
webpack.config中如何代替原来用React编写的项目
resolve: {
alias: {
'react': 'anujs',
'react-dom': 'anujs',
// 若要兼容 IE 请使用以下配置
// 'react': 'qreact/dist/ReactIE',
// 'react-dom': 'qreact/dist/ReactIE',
// 如果引用了 prop-types 或 create-react-class
// 需要添加如下别名
'prop-types': 'qreact/lib/ReactPropTypes',
'create-react-class': 'qreact/lib/createClass'
//如果你在移动端用到了onTouchTap事件
'react-tap-event-plugin': 'anujs/lib/injectTapEventPlugin',
}
},
欢迎大家为anujs加星星与试用!!!
以上是脚本宝典为你收集整理的高性能迷你React框架anujs1.1.1发布全部内容,希望文章能够帮你解决高性能迷你React框架anujs1.1.1发布所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。