高性能迷你React框架anujs1.1.3发布
anujs现在只差一个组件(mention)就完全支持阿里的antd UI库了。一共跑通346个测试, 应该是全世界最接近官方React的迷你框架了。
以后的工作就是把React16的一些新特性支持了,包括组件返回数字、字符串、数组, componentDidCatch钩子与createPortal。
主要更新点:
- 抽象出一个Update类,用于封装组件实例上的所有私有数据
- 抽象出一个instantiateComponente用于同时实例化有状态与无状态组件,从此再没有 mountStateless, updateStateless方法
- 修正checkbox点一下会触发两次onChange的BUG
- 添加ReceiveComponent检测机制,如果context,props一样,那么就不会执行receive, render, update等钩子
- 修改检测空对象的逻辑
- 简化任务调度系统的逻辑.
个人认为要实现异步渲染其实不难的,因为早期的anujs也用到异步。但要一套代码支持两套生命周期系统,还是蛮复杂的。随着代码的增加,我会将一些废弃的方法拆分出来。在打包时,根据你们的喜好进行选择。
使用
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加星星与试用!!!