anujs1.3.0 是一款高性能 React-like 框架,是目前世界上对 React16 兼容最好的迷你库。
自 React16 起,相继推出 createContext,createPortal, createRef 与 createResource 等新 API,表明官方正积极由纯 view 库向大而全的框架演变,它将会越来越好用。一些迷你库可能跟不上步伐,现在也只有 anujs 有这实力跟进。
anujs 作为一个迷你库,相对其他产品,它最大的优势是与 React 兼容性好,换言之可以直接使用 antd,react-router 等第三方库。其他迷你库可能体积会更少,但要你把所有东西都做一遍,无法享受 React 庞大生态圈的好处.
目前已经跑通 562 个测试(大多数是基于 React 官方测试,其他是由项目中遇到的 BUG 抽取出来),去哪儿网平台许多工具都用 Qreact 取代 React,体积节省了 60%( 110kb --> 32kb )。
1.3.0 的改进如下:
vnode.vtype
--> fiber.taginstance.__isStateless
--> fiber._isStatelessupdater
--> fiberupdater.vnode
--> fiber._reactInternalFiberupdater.willReceive
--> fiber._willReceiveupdater.children
--> fiber._childrenupdater.isMounted()
--> fiber._isMounted()updater.insertCarrier
--> fiber._mountCarrierupdater.insertPoint
--> fiber._mountPointupdater.parentContext
--> fiber._unmaskedContextgetChildContext
--> getUnmaskedContextgetContextByTypes
--> 为 getMaskedContextCompositeUpdater.js
--> ComponentFiber.js`DOMUpdater.js
--> HostFiber.jsnpm i anujs
或者使用架手架 https://github.com/Levan-Du/anu-cli
npm i -g anu-cli
webpack.config 中如何代替原来用 React 编写的项目
resolve: {
alias: {
'react': 'anujs',
'react-dom': 'anujs',
// 若要兼容 IE 请使用以下配置
// 'react': 'anujs/dist/ReactIE',
// 'react-dom': 'anujs/dist/ReactIE',
// 如果引用了 prop-types 或 create-react-class
// 需要添加如下别名
'prop-types': 'anujs/lib/ReactPropTypes',
'create-react-class': 'anujs/lib/createClass'
//如果你在移动端用到了 onTouchTap 事件
'react-tap-event-plugin': 'anujs/lib/injectTapEventPlugin',
}
},
欢迎大家为 anujs 加星星与试用!!!