欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angular實(shí)現(xiàn)防抖和節(jié)流的示例代碼

 更新時(shí)間:2024年02月20日 09:10:53   作者:crary,記憶  
這篇博客主要是詳細(xì)介紹兩種常用Angular實(shí)現(xiàn)防抖和節(jié)流的方法:使用RxJS操作符和使用Angular自帶的工具,文中通過(guò)代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下

在Angular中實(shí)現(xiàn)防抖和節(jié)流的方法有多種,這篇博客主要是詳細(xì)介紹兩種常用的方法:使用RxJS操作符和使用Angular自帶的工具。

  • 使用RxJS操作符實(shí)現(xiàn)防抖和節(jié)流:

     防抖(Debounce):

//簡(jiǎn)易版
import { debounceTime } from 'rxjs/operators';
input.valueChanges.pipe(
  debounceTime(300)
).subscribe(value => {
  // 執(zhí)行搜索操作
});
 
 
//詳細(xì)版
import { Component } from '@angular/core';
import { fromEvent } from 'rxjs';
import { debounceTime } from 'rxjs/operators';
 
@Component({
  selector: 'app-debounce-example',
  template: '<input (input)="onInput($event)">'
})
export class DebounceExampleComponent {
  onInput(event: Event) {
    fromEvent(event.target, 'input')
      .pipe(
        debounceTime(300)
      )
      .subscribe(() => {
        // 執(zhí)行輸入框搜索操作
      });
  }
}
  • 節(jié)流(Throttle):
//簡(jiǎn)易版
import { throttleTime } from 'rxjs/operators';
scrollEvent.pipe(
  throttleTime(300)
).subscribe(() => {
  // 執(zhí)行滾動(dòng)操作
});
 
//詳細(xì)版
import { Component } from '@angular/core';
import { fromEvent } from 'rxjs';
import { throttleTime } from 'rxjs/operators';
 
@Component({
  selector: 'app-throttle-example',
  template: '<div (scroll)="onScroll($event)">'
})
export class ThrottleExampleComponent {
  onScroll(event: Event) {
    fromEvent(event.target, 'scroll')
      .pipe(
        throttleTime(300)
      )
      .subscribe(() => {
        // 執(zhí)行滾動(dòng)操作
      });
  }
}
  • 使用Angular自帶的工具實(shí)現(xiàn)防抖和節(jié)流:
  • 防抖(Debounce):
import { Component } from '@angular/core';
 
@Component({
  selector: 'app-debounce-example',
  template: '<input (input)="onInput($event)">'
})
export class DebounceExampleComponent {
  onInput(event: Event) {
    this.debounceSearch();
  }
 
  debounceSearch = this.debounce(() => {
    // 執(zhí)行輸入框搜索操作
  }, 300);
 
  debounce(func, delay) {
    let timer;
    return function() {
      clearTimeout(timer);
      timer = setTimeout(() => {
        func.apply(this, arguments);
      }, delay);
    };
  }
}
  • 節(jié)流(Throttle):
import { Component } from '@angular/core';
 
@Component({
  selector: 'app-throttle-example',
  template: '<div (scroll)="onScroll($event)">'
})
export class ThrottleExampleComponent {
  onScroll(event: Event) {
    this.throttleScroll();
  }
 
  throttleScroll = this.throttle(() => {
    // 執(zhí)行滾動(dòng)操作
  }, 300);
 
  throttle(func, delay) {
    let canRun = true;
    return function() {
      if (!canRun) return;
      canRun = false;
      setTimeout(() => {
        func.apply(this, arguments);
        canRun = true;
      }, delay);
    };
  }
}

以上就是Angular實(shí)現(xiàn)防抖和節(jié)流的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于Angular防抖和節(jié)流的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • AngularJS中如何使用echart插件示例詳解

    AngularJS中如何使用echart插件示例詳解

    之前因?yàn)轫?xiàng)目的需求,第一次系統(tǒng)的使用了angular這一優(yōu)秀的js框架,其所擁有的許多優(yōu)秀特性極大的方便了項(xiàng)目的開發(fā),然而在開發(fā)中也遇到過(guò)不少的問(wèn)題,趁著最近有時(shí)間給大家總結(jié)一下,這篇文章將會(huì)介紹使用angularjs1結(jié)合百度的圖表插件echart作為例子用以演示。
    2016-10-10
  • Angular腳手架開發(fā)的實(shí)現(xiàn)步驟

    Angular腳手架開發(fā)的實(shí)現(xiàn)步驟

    這篇文章主要介紹了Angular腳手架開發(fā)的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • AngularJS基于MVC的復(fù)雜操作實(shí)例講解

    AngularJS基于MVC的復(fù)雜操作實(shí)例講解

    下面小編就為大家分享一篇AngularJS基于MVC的復(fù)雜操作實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Angularjs實(shí)現(xiàn)多圖片上傳預(yù)覽功能

    Angularjs實(shí)現(xiàn)多圖片上傳預(yù)覽功能

    這篇文章主要介紹了Angularjs實(shí)現(xiàn)多圖片上傳預(yù)覽功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 詳解angular中通過(guò)$location獲取路徑(參數(shù))的寫法

    詳解angular中通過(guò)$location獲取路徑(參數(shù))的寫法

    本篇文章主要介紹了詳解angular中通過(guò)$location獲取路徑(參數(shù))的寫法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • 詳解Angularjs中的依賴注入

    詳解Angularjs中的依賴注入

    這篇文章主要為大家詳細(xì)介紹了Angularjs中的依賴注入,AngularJS提供了一個(gè)至高無(wú)上的依賴注入機(jī)制,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Angular中使用ng-zorro圖標(biāo)庫(kù)部分圖標(biāo)不能正常顯示問(wèn)題

    Angular中使用ng-zorro圖標(biāo)庫(kù)部分圖標(biāo)不能正常顯示問(wèn)題

    這篇文章主要介紹了Angular中使用ng-zorro圖標(biāo)庫(kù)部分圖標(biāo)不能正常顯示問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • Angular2安裝angular-cli

    Angular2安裝angular-cli

    這篇文章主要介紹了Angular2安裝angular-cli ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • AngularJS實(shí)現(xiàn)表單手動(dòng)驗(yàn)證和表單自動(dòng)驗(yàn)證

    AngularJS實(shí)現(xiàn)表單手動(dòng)驗(yàn)證和表單自動(dòng)驗(yàn)證

    本文是對(duì)AngularJS表單驗(yàn)證,手動(dòng)驗(yàn)證或自動(dòng)驗(yàn)證的講解,對(duì)學(xué)習(xí)JavaScript編程技術(shù)有所幫助,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Angular 2父子組件數(shù)據(jù)傳遞之@Input和@Output詳解(下)

    Angular 2父子組件數(shù)據(jù)傳遞之@Input和@Output詳解(下)

    這篇文章主要給大家介紹了關(guān)于Angular 2父子組件數(shù)據(jù)傳遞之@Input和@Output的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-07-07

最新評(píng)論