成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

react 中使用setTimeout

zhoutao / 2854人閱讀

摘要:中使用做輪詢(xún)由于是在內(nèi)存中運(yùn)行,所以即使是對(duì)象已經(jīng)被銷(xiāo)毀了,如果在組件卸載的時(shí)候沒(méi)有清楚掉定時(shí)器,做循環(huán)還是會(huì)在內(nèi)存中一直運(yùn)行是指向定時(shí)器的指針每次執(zhí)行都需要更新這個(gè)指針只有在表格數(shù)據(jù)返回之后才能再請(qǐng)求數(shù)據(jù)目標(biāo)使用獲取數(shù)據(jù)請(qǐng)求數(shù)據(jù)的方法如果

React中使用setTimeout

setTimeout做輪詢(xún)

React由于是在內(nèi)存中運(yùn)行,所以即使是DOM對(duì)象已經(jīng)被銷(xiāo)毀了,如果在組件卸載(componentWillUnmount)的時(shí)候沒(méi)有清楚掉定時(shí)器, setTimeout做循環(huán)還是會(huì)在內(nèi)存中一直運(yùn)行

    componentWillUnmount() {
        this.state.brush && clearTimeout(this.state.brush)
    }

2.this.state.brush是指向定時(shí)器的指針 每次 setTimeout執(zhí)行都需要更新這個(gè)指針

    brushData = (time = this.state.brushtime, formdata = {
        wfid: this.state.wfid,
        begintime: this.state.time
    }) => {
        var brush = setTimeout(this.brushData, time * 5 * 1000);
        this.setState({brush})
        // 只有在表格數(shù)據(jù)返回之后才能再請(qǐng)求數(shù)據(jù)
        this.state.tableLoading || this.getPageData({...formdata}, true)
    }
目標(biāo)

使用setTimeout獲取數(shù)據(jù)

請(qǐng)求數(shù)據(jù)的方法

getPageData = (formdata, brushing) => {
        // brushing 如果是自動(dòng)輪詢(xún)獲取數(shù)據(jù)則brushing值為true 避免請(qǐng)求數(shù)據(jù)陷入死循環(huán) 這一步只能有submint事件觸發(fā) 因?yàn)橐卤韱沃?        if (this.state.brushtime && !brushing) {
            // 保存表單值 以便setTImeout的回調(diào)函數(shù)(其實(shí)也就是getPageData)能取得請(qǐng)求數(shù)據(jù)時(shí)的參數(shù)
            formdata && this.setState({wfid: formdata.wfid, time: formdata.begintime});
            this.brushData(this.state.brushtime);
        } else {
            this.setState({tableLoading: true})
            if (!formdata) {
                // 初次加載
            } else {
                // 緩存當(dāng)前頁(yè)面選擇的時(shí)間
            }
        }
    }

循環(huán)的方法

// brushData是回調(diào)函數(shù) 所以參數(shù)只能在當(dāng)前作用域中取得
brushData = (time = this.state.brushtime) => {
        var brush = setTimeout(this.brushData, time * 5 * 1000);
        this.setState({brush})
        // 只有在表格數(shù)據(jù)返回之后才能再請(qǐng)求數(shù)據(jù)  并且在刷新頁(yè)面數(shù)據(jù)的時(shí)候表單值傳入null使請(qǐng)求數(shù)據(jù)的函數(shù)直接從state中取相應(yīng)的表單值
        this.state.tableLoading || this.getPageData(null, true)
    }

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/84356.html

相關(guān)文章

  • 使用React.setState需要注意的三點(diǎn)

    摘要:而不是在方法中在通過(guò)來(lái)獲取使用回調(diào)函數(shù)方法接收一個(gè)作為回調(diào)函數(shù)。這樣子直接輸出,回調(diào)函數(shù),對(duì)比如果默認(rèn)為輸入的結(jié)果是和渲染無(wú)關(guān)的狀態(tài)盡量不要放在中來(lái)管理通常中只來(lái)管理和渲染有關(guān)的狀態(tài),從而保證改變的狀態(tài)都是和渲染有關(guān)的狀態(tài)。 原文: https://medium.com/@mweststra...作者: Michel Weststrate 前言 這篇文章原標(biāo)題是3 Reasons w...

    instein 評(píng)論0 收藏0
  • 深入理解Webpack核心模塊Tapable鉤子[異步版]

    摘要:接上一篇文章深入理解核心模塊鉤子同步版中三個(gè)注冊(cè)方法同步注冊(cè)的是中對(duì)三個(gè)觸發(fā)方法這一章節(jié)我們將分別實(shí)現(xiàn)異步的版本和版本異步鉤子的版本的版本的版本異步的鉤子分為并行和串行的鉤子,并行是指等待所有并發(fā)的異步事件執(zhí)行之后再執(zhí)行最終的異步回調(diào)。 接上一篇文章 深入理解Webpack核心模塊WTApable鉤子(同步版) tapable中三個(gè)注冊(cè)方法 1 tap(同步) 2 tapAsync(...

    AlphaWallet 評(píng)論0 收藏0
  • 功能性組件和Classes有什么不同?

    摘要:函數(shù)組件與類(lèi)有何不同有一段時(shí)間,規(guī)范的答案是類(lèi)可以訪(fǎng)問(wèn)更多功能如狀態(tài)。那么功能性函數(shù)和類(lèi)是否又根本的區(qū)別函數(shù)組件捕獲的值。假設(shè)功能組件不存在。在我到目前為止看到的所有情況中,由于錯(cuò)誤地假設(shè)功能不會(huì)改變或總是相同,所以會(huì)出現(xiàn)陳舊的封閉問(wèn)題。 React函數(shù)組件與React類(lèi)有何不同? 有一段時(shí)間,規(guī)范的答案是類(lèi)可以訪(fǎng)問(wèn)更多功能(如狀態(tài))。但是自從有了Hook后,這個(gè)答案變得不唯一了。 也...

    lmxdawn 評(píng)論0 收藏0
  • 功能性組件和Classes有什么不同?

    摘要:函數(shù)組件與類(lèi)有何不同有一段時(shí)間,規(guī)范的答案是類(lèi)可以訪(fǎng)問(wèn)更多功能如狀態(tài)。那么功能性函數(shù)和類(lèi)是否又根本的區(qū)別函數(shù)組件捕獲的值。假設(shè)功能組件不存在。在我到目前為止看到的所有情況中,由于錯(cuò)誤地假設(shè)功能不會(huì)改變或總是相同,所以會(huì)出現(xiàn)陳舊的封閉問(wèn)題。 React函數(shù)組件與React類(lèi)有何不同? 有一段時(shí)間,規(guī)范的答案是類(lèi)可以訪(fǎng)問(wèn)更多功能(如狀態(tài))。但是自從有了Hook后,這個(gè)答案變得不唯一了。 也...

    GitCafe 評(píng)論0 收藏0
  • 功能性組件和Classes有什么不同?

    摘要:函數(shù)組件與類(lèi)有何不同有一段時(shí)間,規(guī)范的答案是類(lèi)可以訪(fǎng)問(wèn)更多功能如狀態(tài)。那么功能性函數(shù)和類(lèi)是否又根本的區(qū)別函數(shù)組件捕獲的值。假設(shè)功能組件不存在。在我到目前為止看到的所有情況中,由于錯(cuò)誤地假設(shè)功能不會(huì)改變或總是相同,所以會(huì)出現(xiàn)陳舊的封閉問(wèn)題。 React函數(shù)組件與React類(lèi)有何不同? 有一段時(shí)間,規(guī)范的答案是類(lèi)可以訪(fǎng)問(wèn)更多功能(如狀態(tài))。但是自從有了Hook后,這個(gè)答案變得不唯一了。 也...

    peixn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<