在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ react 項目中,我想優(yōu)化一下這段顯示事件的代碼,請問如何修改?

react 項目中,我想優(yōu)化一下這段顯示事件的代碼,請問如何修改?

componentDidMount() {

        const _self = this; // 指向本對象的指針

        var myDate = new Date();
        document.getElementsByClassName('year')[0].innerHTML = myDate.getFullYear();

        var month = myDate.getMonth()+1;
        month =(month<10 ? "0"+month:month);

        document.getElementsByClassName('month')[0].innerHTML = month; // 月份自動加0

        var day = myDate.getDate();
        day =(day<10 ? "0"+day:day);

        document.getElementsByClassName('day')[0].innerHTML = day; // 日子自動加0;

        var hour = myDate.getHours();
        hour =(hour<10 ? "0"+hour:hour);

        document.getElementsByClassName('hour')[0].innerHTML = hour; // 小時自動加0

        var minute = myDate.getMinutes();
        minute =(minute<10 ? "0"+minute:minute);

        document.getElementsByClassName('minute')[0].innerHTML = minute; //獲取當前分鐘數(shù)(0-59)

        _self.showTimer = setInterval(()=> this.treat(), 1000*3); // 1分鐘換一次數(shù)據(jù)
    }
回答
編輯回答
乞許

你這個代碼問題比較多。

首先, React是聲明式, 所以不應該手動操作DOM, 你代碼中的innerHTML應該全部用render替換。

其次, 應用的狀態(tài)應該用state存儲, 包括年月日小時和分鐘。

再次, 狀態(tài)的更新應該在組件掛載后(componentDidMount)設置一個定時器, 并且將定時器保存起來方便在組件卸載時清除定時器防止內存泄漏。

最后, 組件卸載時(componentWillUnmout)清除定時器。

2017年7月28日 22:11
編輯回答
拼未來
<span className="year">{this.state.year}</span>
2018年5月12日 04:05