高效能迷你React框架anujs1.1.3釋出
阿新 • • 發佈:2018-12-22
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加星星與試用!!!