React中實現定時操作和時間間隔內迴圈操作
阿新 • • 發佈:2019-01-08
最近,在專案中用到了一個功能,就是進入一個頁面,進行數字動態的滾動,當時只顧著去想一些動畫的效果了,所以花一點時間,後來自己上網找了一下,發現這個方法挺好的。
1.在一個設定的時間間隔內進行迴圈的操作
componentWillReceiveProps(next){
//控制數字的滾動
if(next.total!==0 && !this.timer) {
this.timer = setInterval(
() => {
//this.state.start就是這個滾動數字的其實值,然後將其分成21份,每50毫秒進行加一份
let val = this.state.start + parseInt(next.total/21);
//當這個數字大於最後顯示的資料時,停止
if (val >= next.total) {
val = next.total;
//停止掉
clearInterval(this.timer);
this .timer = undefined;
}
this.setState({
start: val,
});
},
50
);
}
2.定時操作(在某一段時間之後執行某個方法)
componentWillReceiveProps(next){
if(next.total!==0 && !this .timer) {
this.timer = setTimeout(
() => {
alert(‘隔了1000毫秒執行了這個提示!’);
},
1000
);
}
}
//不用的是時候將其解綁
componentWillUnmount() {
this.timer && clearTimeout(this.timer);
}