函式節流與函式去抖

2022-04-29 13:24:12 字數 1038 閱讀 5034

父元件通過props向子元件傳遞引數

父元件將乙個函式作為props傳遞給子元件,子元件呼叫該**函式,向父元件通訊。

中間元件層層傳遞props(存在巢狀太深的問題)

使用context物件(推薦)

context是全域性容器,靜態屬性,使用條件:

父元件要宣告自己支援context,並提供context中屬性的proptypes

子元件要宣告自己需要使用context,並提供需要使用的context中屬性的proptypes

父元件需提供乙個getchildcontext函式,返回乙個相應的初始context物件

若元件中使用constructor函式,務必在建構函式中傳入第二個引數context,並在super呼叫父類建構函式時也傳入context,否則會造成元件中無法使用context

constructor(props,context)

利用二者共同父元件的context物件通訊(存在巢狀太深、元件耦合度大的問題)

使用自定義事件的方式(事件訂閱,推薦)

throttle,阻止函式在給定時間內被多次呼叫。

import throttle from 'lodash.throttle';

class loadmorebutton extends react.component

componentwillunmount()

render()

handleclick()

}

debounce,確保函式上次執行後的一段時間內,不會再次執行。

import debounce from 'lodash.debounce';

class searchbox extends react.component

componentwillunmount()

render()

handlechange(e)

emitchange(value)

}

參考元件通訊 - 在元件中使用事件處理函式;

函式節流和函式去抖

在日常的開發過程中,會有這樣的場景,事件被頻繁的觸發,比如說我們的在輸入的時候監控keypress事件,在頁面滾動的時候監控頁面的滾動事件。比如我們監控頁面的resize事件,拉動視窗改變大小的時候,resize事件被頻繁的執行 事件處理函式簡單的話還好,但是如果是複雜的dom操作,可能會導致整個u...

js 什麼是函式節流與函式去抖

意思 節省流量,不會一直訪問。指定時間內不執行,指定時間後執行。一段時間內只執行一次 場景 比如控制遊戲人物攻擊,時間內就算按得很快,也只能砍一刀,過後才能砍第二刀。搜尋引擎聯想詞。搜尋框的oninput事件節流。引數 乙個函式,乙個時間 返回 乙個函式 對比時間進行處理 function thro...

函式防抖與函式節流

函式防抖 debounce 當呼叫動作過n毫秒後,才會執行該動作,若在這n毫秒內又呼叫此動作則將重新計算執行時間 函式節流 throttle 預先設定乙個執行週期,當呼叫動作的時刻大於等於執行週期則執行該動作,然後進入下乙個新週期 函式節流 throttle 與函式防抖 debounce 都是為了限...