
JSX
一种 JavaScript 语法扩展
RxJS(Reactive Extensions for JavaScript)是一个 响应式编程库,用于处理 异步数据流和事件驱动编程。它基于 观察者模式(Observer Pattern) 和 函数式编程(Functional Programming),提供了一套强大的工具来管理 事件、异步请求、状态变更 等复杂数据流。RxJS 的核心是 Observable(可观察对象),允许开发者以声明式的方式组合和转换数据流,适用于 前端应用、Node.js 后端和实时数据处理。
next
、error
、complete
)map
、filter
、reduce
merge
、concat
、switchMap
catchError
、retry
BehaviorSubject
、ReplaySubject
)asyncScheduler
、queueScheduler
)Subscription
管理资源释放,避免内存泄漏术语 | 说明 |
---|---|
Observable | 异步数据流(如 fromEvent(button, 'click') ) |
Observer | 订阅 Observable 的对象(处理 next 、error 、complete ) |
Operator | 操作数据流的方法(如 debounceTime(300) ) |
Subject | 多播数据流(如 new BehaviorSubject(initialValue) ) |
Subscription | 管理订阅生命周期(unsubscribe() 释放资源) |
debounceTime
)、连续点击限制switchMap
)、错误重试BehaviorSubject
存储状态)animationFrameScheduler
)npm install rxjs
import { Observable } from 'rxjs';
const observable = new Observable(subscriber => {
subscriber.next(1);
setTimeout(() => subscriber.complete(), 1000);
});
observable.subscribe({
next: value => console.log(value), // 1
complete: () => console.log('Done')
});
import { fromEvent } from 'rxjs';
import { debounceTime, map } from 'rxjs/operators';
fromEvent(document, 'input')
.pipe(
debounceTime(300),
map(e => e.target.value)
)
.subscribe(value => console.log(value));
import { BehaviorSubject } from 'rxjs';
const subject = new BehaviorSubject('初始值');
subject.subscribe(value => console.log(value)); // 立即输出"初始值"
subject.next('新值'); // 输出"新值"
takeUntil
或手动 unsubscribe()
switchMap
/mergeMap
替代嵌套 subscribe
shareReplay
)避免重复计算rxjs/operators
减少打包体积animationFrameScheduler
本站速览导航提供的RxJS都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由速览导航实际控制,在2025年4月1日 下午10:39收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,速览导航不承担任何责任。