anujs1.3.0 是一款高性能 React-like 框架, 是目前世界上对 React16 兼容最好的迷你库
自 React16 起, 相继推出 createContext,createPortal, createRef 与 createResource 等新 API, 表明官方正积极由纯 view 库向大而全的框架演变, 它将会越来越好用一些迷你库可能跟不上步伐, 现在也只有 anujs 有这实力跟进
1.3.0 的改进如下:
支持 React16.3 的 createContext new API
添加大量 React.Fragment 测试, 修正一些边缘的 BUG
升级 diff 机制, 由新旧 vnode 进行比较, 改成 fiber 与新 vnode 进行比较, 用新 vnode 的数据更新 fiber 与视图
添加 input[type=search] 的 onChange 事件支持
修正传送门在 antd3.0 的一个边缘 BUG(重复插入两次, 导致文本节点消失)
属性名与方法名大改动, 与 React16 的 Fiber 靠近
- vnode.vtype --> fiber.tag
- instance.__isStateless
- --> fiber._isStateless
- updater --> fiber
- updater.vnode --> fiber._reactInternalFiber
- updater.willReceive
- --> fiber._willReceive
- updater.children --> fiber._children
- updater.isMounted()
- --> fiber._isMounted()
- updater.insertCarrier
- --> fiber._mountCarrier
- updater.insertPoint
- --> fiber._mountPoint
- updater.parentContext
- --> fiber._unmaskedContext
- getChildContext --> getUnmaskedContext
getContextByTypes --> 为 getMaskedContext
- CompositeUpdater.js
- --> ComponentFiber.js`
- DOMUpdater.js --> HostFiber.js
使用
npm i anujs
或者使用架手架 github.com/Levan-Du/a.
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 加星星与试用!!!
github.com/RubyLouvre.
来源: https://juejin.im/entry/5a9ea0235188255581547adf