react中的圖片預(yù)加載

  • 首先說(shuō)明一點(diǎn)的是,如果你的項(xiàng)目中只需要幾張?zhí)崆邦A(yù)加載的圖片可以進(jìn)行使用,要是多的話,可能會(huì)導(dǎo)致你的項(xiàng)目卡頓,如果你使用了圖片預(yù)加載,那么怎么驗(yàn)證呢,我們可以在network中查看有沒(méi)有進(jìn)行提前加載,還有將我們當(dāng)前調(diào)試項(xiàng)目中的網(wǎng)絡(luò)切換一下,變?yōu)?g等,在切換或者是點(diǎn)擊事件讓你的圖片進(jìn)行顯示的時(shí)候,這個(gè)時(shí)候你可以在看看network中有沒(méi)有重新加載請(qǐng)求圖片,如果重新請(qǐng)求了,那么你的預(yù)加載就是有問(wèn)題的,他是預(yù)加載了,但是你圖片的路徑可能不一致,只有沒(méi)有在network中進(jìn)行重新請(qǐng)求,那么說(shuō)明你的圖片預(yù)加載是正確的
  • 下面先看看代碼的實(shí)現(xiàn)
    // todo 預(yù)加載圖片
  loadImage(url, callback) {     
    var img = new Image(); //創(chuàng)建一個(gè)Image對(duì)象,實(shí)現(xiàn)圖片的預(yù)下載     
    img.onload = function(){
        img.onload = null;
        callback(img);
    }
    img.src = url; 
}
  • 進(jìn)行調(diào)用,這里我使用了componentDidMount生命周期
  componentDidMount() {
    //todo React.getImage('loading')這個(gè)是一樣的,換膚的時(shí)候,里面的路勁是不同的
    this.loadImage(React.getImage('loading'),(img)=>{
      console.log(img);//這里可以不寫(xiě)或者是將上面方法中的回調(diào)函數(shù)去掉
    });
  }
  • 解釋下這個(gè)React.getImage('loading');這是我寫(xiě)的全局的圖片路徑,要換膚切換圖片,你們可以改成自己的圖片路徑就可以了


    image.png
  • 上面的圖片是初始化的時(shí)候,進(jìn)行了圖片預(yù)加載
image.png
  • 這張圖片是使用移動(dòng)端的切換網(wǎng)絡(luò)進(jìn)行的調(diào)試一般是online,low-end mobile是低端手機(jī)的意思,網(wǎng)速也是很慢的
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容