成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

高性能迷你React框架anujs1.1.4發(fā)布

elva / 1907人閱讀

摘要:本周在支持機票的項目中對做了大量改進,包括性能上與結(jié)構(gòu)上的改進。但通過一些簡化改改良,代碼的可靠性大大提高了。此外,還有周邊的優(yōu)化在目錄下提供一個,用于在舊式中替換。改善,里面內(nèi)置了一個補丁,也是用于改善性能,或中的性能好差。

本周在支持機票的項目中對anujs做了大量改進,包括性能上與結(jié)構(gòu)上的改進。與1.1.3一樣,還是差一個組件就完全兼容阿里的antd UI庫。

框架本身的改進有:

修正flushUpdaters中updater對象的泄露問題(需要clearArray一下)

優(yōu)化diffChildren的邏輯,防止出現(xiàn)parentNode等于null的情況(比如為文本節(jié)點取firstChild)

簡化ControlledComponent與dispose模塊

處理updateElement方法中兩個虛擬DOM的引用一樣時,調(diào)用flattenChildren時,舊的vchildren丟失的情況

移除Refs中的createStringRef,createInsanceRef,添加fireRef,
重構(gòu)detachRef,clearRefs,cloneElement,createElement有關(guān)ref的部分,盡量減少閉包的應(yīng)用

將updateQueue移出所有diff方法的傳參列表,合并到調(diào)度器中

新添React16的createPortal API

上面什么修正內(nèi)存泄露與減少閉包,都是在IE下才發(fā)現(xiàn)的問題,在chrome下一點事都沒有。但通過一些簡化改改良,代碼的可靠性大大提高了。

此外,還有周邊的優(yōu)化

在lib目錄下提供一個ReduxIE.js,用于在舊式IE中替換redux。因為官方redux里面用到了一個isPlainObject方法,這個方法是由lodash庫提供的,而這個方法的源碼本身是來源于jQuery3.x,沒有針對IE進行處理,性能很差。我將它替換為jQuery1.x的isPlainObject,就很正常運作了。

改善ReactIE.js,里面內(nèi)置了一個Object.keys補丁,也是用于改善性能,es5shim.js或babel polyfill中的Object.keys性能好差。

function needFix(fn) {
    return !/native code/.test(fn);
}
function keysPolyfill() {//解決IE下Object.keys的性能問題
    if (needFix(Object.keys)) {
        Object.keys = function(obj) {
            var a = [];
            for(var k in obj) {
                if (obj.hasOwnProperty(k)) {
                    a.push(k);
                }
            }
            return a;
        };
    }
}
keysPolyfill();
setTimeout(keysPolyfill, 0);
setTimeout(keysPolyfill, 100);

使用

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...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89199.html

相關(guān)文章

  • 性能迷你React框架 anu1.3.0 發(fā)布

    摘要:是一款高性能框架,是目前世界上對兼容最好的迷你庫。自起,相繼推出,與等新,表明官方正積極由純庫向大而全的框架演變,它將會越來越好用。一些迷你庫可能跟不上步伐,現(xiàn)在也只有有這實力跟進。 anujs1.3.0是一款高性能React-like框架,是目前世界上對React16兼容最好的迷你庫。 自React16起,相繼推出createContext,createPortal, createR...

    Flands 評論0 收藏0
  • 性能迷你React框架anujs1.1.3發(fā)布

    摘要:現(xiàn)在只差一個組件就完全支持阿里的庫了。一共跑通個測試應(yīng)該是全世界最接近官方的迷你框架了。以后的工作就是把的一些新特性支持了,包括組件返回數(shù)字字符串?dāng)?shù)組,鉤子與。隨著代碼的增加,我會將一些廢棄的方法拆分出來。在打包時,根據(jù)你們的喜好進行選擇。 anujs現(xiàn)在只差一個組件(mention)就完全支持阿里的antd UI庫了。一共跑通346個測試, 應(yīng)該是全世界最接近官方React的迷你框架...

    hosition 評論0 收藏0
  • 性能迷你React框架 anu1.2.1 發(fā)布

    摘要:這次更新主要是改善了對焦點的處理及的語法糖的支持優(yōu)化的性能,將原方法內(nèi)部用到函數(shù)與對象提到全局上來,這就比官方的對象池技術(shù)更能提升性能。 anu1.2.1這次更新主要是改善了對焦點的處理及react16.2的Fragment語法糖的支持 優(yōu)化fiberizeChildren的性能,將原方法內(nèi)部用到函數(shù)與對象提到全局上來,這就比官方的對象池技術(shù)更能提升性能。 修復(fù)受控組件在textar...

    phpmatt 評論0 收藏0
  • 性能迷你React框架 anu1.2.2 發(fā)布

    摘要:本版本主要是對的組件進行最后一次修復(fù)工作,除了組件,都支持了。其次它是市場上唯一支持特征的庫。明年也會搞一個狀態(tài)庫,對異步渲染友好。路由,狀態(tài)庫,等一套東西與一起配合使用。 本版本主要是對antd3的組件進行最后一次修復(fù)工作,除了mention組件,都支持了。 明年的精力就集中異步渲染與后端渲染上。anujs的體積經(jīng)過幾個版本的迭代,體積有所增大24kb(沒有壓縮的情況),但還是遠遠少...

    wanghui 評論0 收藏0
  • 性能迷你React框架anujs1.1.2發(fā)布

    摘要:在兼容官方比以往更進一步,一共跑通套測試,其中套是官方的測試。在機制,機制,虛擬更新機制,傳遞機制,生成策略上大大重構(gòu)。是有史以來最多的更新級。但工作還沒有完成,只是怕更新太多做了一次短暫的休整。 anujs1.1.2在兼容官方React比以往更進一步,一共跑通293套測試,其中179套是官方React的測試。 在ref機制,owner機制,虛擬DOM更新機制,context傳遞機制,...

    lemanli 評論0 收藏0

發(fā)表評論

0條評論

elva

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<