1. 程式人生 > >高效能迷你React框架anujs1.1.3釋出

高效能迷你React框架anujs1.1.3釋出

anujs現在只差一個元件(mention)就完全支援阿里的antd UI庫了。一共跑通346個測試, 應該是全世界最接近官方React的迷你框架了。

以後的工作就是把React16的一些新特性支援了,包括元件返回數字、字串、陣列, componentDidCatch鉤子與createPortal。

主要更新點:

  1. 抽象出一個Update類,用於封裝元件例項上的所有私有資料
  2. 抽象出一個instantiateComponente用於同時例項化有狀態與無狀態元件,從此再沒有 mountStateless, updateStateless方法
  3. 修正checkbox點一下會觸發兩次onChange的BUG
  4. 新增ReceiveComponent檢測機制,如果context,props一樣,那麼就不會執行receive, render, update等鉤子
  5. 修改檢測空物件的邏輯
  6. 簡化任務排程系統的邏輯.

個人認為要實現非同步渲染其實不難的,因為早期的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加星星與試用!!!

https://github.com/RubyLouvre...