react 判断图片是否加载完成_如何判断图片(img)是否已经加载成功--基于react...
我過去經常會問:
有沒有一種方法去判斷子類組件是否已經渲染完成?
答案當然是有的啦 ?componentDidMount(),在react component 已經渲染完成時?就會調用?componentDidMount()方法
如果你對??componentDidMount() 不太熟悉, 那么建議你去看看react組件的生命周期(React Component Lifecycle Methods),哪里每一個方法你早晚都會用到的。
稍微多了解一些,你會意識到提問者真的想要知道的是圖片何時才算已經完成加載了,以react已經渲染了標簽為標準是不能拿來判斷圖片已經加載完成的。
讓我們來建立幾個簡單的定義來理解rendered 和?loaded:rendered(也叫渲染完成):react 已經把你的虛擬DOM元素轉化到真實DOM元素中并和真實的DOM建立起連接。
loaded:指圖片數據或者其他來自服務器端等遠程客戶端上的內容已經下載完成了(或者已經下載失敗了)
如果你還不都清楚,簡單的說,render 總是會在 load 之前
為什么要等待一個圖片加載?
額, 也許當你的圖片已經加載完了后你希望:
隱藏loading圖標。
自動加載更多圖片。
轉化UI,使圖片更加凸顯。
或者其他理由
想要找出如何判斷圖片加載事件的方法,那么就接著往下讀吧。
onLoad & onError
onload 和 onerror這兩個屬性以及可以正常的在DOM標簽上使用了(HTMLImageElement),react 要使用駝峰格式來獲取這個事件,這也是onLoad?and?onError的來由。react的文檔中已經提倡這么用了,但并沒有討論具體為什么要這么用(Image Events)
所以你只要添加?onLoad?and?onError這兩個事件在你的react 標簽中就行了。如果還是不夠清楚,那么看看下面的代碼栗子吧!
Short Example
這里是一個關于使用 onLoad 事件的簡短的栗子, 想看更多詳細的關于如何顯示loading圖直到圖標加載完成的栗子, 就看看作者的下一篇文章(React Image Gallery)
下面的這個組件,?ImageWithStatusText, 加載一張圖片和和顯示一段文本:‘loaded‘ 或者 ‘failed to load‘
import React from ‘react‘;
class ImageWithStatusText extends React.Component {
constructor(props) {
super(props);this.state = { imageStatus: null};
}
handleImageLoaded() {this.setState({ imageStatus: ‘loaded‘});
}
handleImageErrored() {this.setState({ imageStatus: ‘failed to load‘});
}
render() {return(
src={this.props.imageUrl}
onLoad={this.handleImageLoaded.bind(this)}
onError={this.handleImageErrored.bind(this)}/>
{this.state.imageStatus}
);
}
}
exportdefault ImageWithStatusText;
它相當短吧。好好理解吧,希望對你們有用(這段話是譯者瞎嗶嗶的)
原文:http://www.cnblogs.com/anhaiming/p/5456154.html
總結
以上是生活随笔為你收集整理的react 判断图片是否加载完成_如何判断图片(img)是否已经加载成功--基于react...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql done_MySQL 获取游
- 下一篇: 锐捷服务器虚拟化技术_数据中心边缘虚拟交