高性能迷你React框架anujs1.1.2發佈

anujs1.1.2在兼容官方React比以往更進一步,一共跑通293套測試,其中179套是官方React的測試。react

在ref機制,owner機制,虛擬DOM更新機制,context傳遞機制,SVG生成策略上大大重構。是有史以來最多的更新級。但工做尚未完成,只是怕更新太多作了一次短暫的休整。webpack

主要更新點:git

  1. 修正 onChange 事件
  2. 重構 diffProps 模塊的實現
  3. 支持組件的isMounted方法
  4. 添加beforePatch , afterPatch鉤子
  5. 添加lib/ReactInputSelection.js
  6. 統一全部操做虛擬DOM的方法的參數(mountXXX, updateXXX, alignXXX系列)

1 第一個參數爲舊真實DOM或舊虛擬DOM
2 第二個參數爲新虛擬DOM
3 第三個參數爲父虛擬DOM(可能不存在,那麼後面直接跟第四,第五)
4 第四個參數爲上下文對象
5 第五個參數爲任務調度繫系統的列隊github

  1. 使用全新的方式獲取元素的命名空間
  2. 上線全新的節點排序算法(diffChildren)
  3. renderByAnu在全局渲染後應該置空CurrentOwner.cur, 防止影響其餘虛擬DOM
  4. 完善createStringRef方法,應該能拋錯與刪除無用數據
  5. 上線全新的任務調度系統
  6. 重構unmountComponentAtNode方法
  7. 添加對兩個虛擬DOM的引用都相同的狀況下,檢測子組件的contextType決定是否更新的策略
  8. 無狀態組件支持模塊模式(返回一個帶生命週期鉤子的純對象,這些方法會像有狀態組件那樣被調用)
  9. 放鬆shouldComponentUpdate的限制,返回任何假值都阻止子孫更新
  10. 修正ref的更新方式
  11. shouldComponentUpdate返回假值時,當前的虛擬DOM應該吸納舊虛擬DOM的有用信息

使用web

npm i anujs

或者使用架手架 https://github.com/Levan-Du/a...算法

npm i -g anu-cli

webpack.config中如何代替原來用React編寫的項目npm

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加星星與試用!!!dom

https://github.com/RubyLouvre...測試

相關文章
相關標籤/搜索