React中实现定时操作和时间间隔内循环操作

最近,在项目中用到了一个功能,就是进入一个页面,进行数字动态的滚动,当时只顾着去想一些动画的效果了,所以花一点时间,后来自己上网找了一下,发现这个方法挺好的。
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);
    }

版权声明:本文为qq_30053399原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。