Skip to content

Commit ac80dc2

Browse files
committed
add service + rxjs
1 parent 54d1662 commit ac80dc2

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

frontend/blog/2019-03-08-Service+Rxjs在我们项目中的应用.md renamed to frontend/blog/2019-03-08-how-to-use-servic-and-rxjs-.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
## 实战演练
1+
# Service + Rxjs 在我们项目中的实际应用
22

33
产品原型图以及前端组件结构如下所示:
44
![产品原型图](https://ws1.sinaimg.cn/large/006tKfTcgy1g0ppsonpmpj31y40qbjwt.jpg)
55

66
经过分析后,数据状态流向示意图如下:
77
![数据状态流向示意图](https://ws1.sinaimg.cn/large/006tKfTcgy1g0pptuszkuj30z108uwfr.jpg)
88

9-
### 状态改变的几个节点
9+
## 状态改变的几个节点
1010

1111
- 发起 Http 请求获取源数据:
1212
- SearchBar 组件点击查询按钮
@@ -22,7 +22,7 @@
2222
- 最终数据,也就是排序后的数据
2323
- List 组件订阅数据, 每次得到新数据,就重新渲染。
2424

25-
### Service 的核心结构
25+
## Service 的核心结构
2626

2727
```ts
2828
// data.service.ts
@@ -43,7 +43,7 @@ export class DataService {
4343
}
4444

4545
private initShowTrains(): void {
46-
const trains$ = this.searchParams$.pipe(siwthMap(params => this.httpService.search(params)))
46+
const trains$ = this.searchParams$.pipe(switchMap(params => this.httpService.search(params)))
4747

4848
const filteredTrains$ = combineLatest(
4949
trains$,
@@ -91,11 +91,11 @@ export class DataService {
9191

9292
- 利用 [Subject](https://www.learnrxjs.io/subjects/subject.html) 的特点, 将**查询参数****过滤条件****排序条件**转换为3个可观察对象 (observable)。
9393
- 利用 [combineLatest](https://www.learnrxjs.io/operators/combination/combinelatest.html) 操作符,将上述的3个 observable 组合起来,等到每一个 observable 都发出一个值后,combineLatest 首次发出初始值。之后任意一个 observable 发出值,combineLatest 都会发出每个 observable 的最新值。
94-
- 利用 [siwthMap](https://www.learnrxjs.io/operators/transformation/switchmap.html) 操作符拿到参数发起 http 请求获取源数据。
94+
- 利用 [switchMap](https://www.learnrxjs.io/operators/transformation/switchmap.html) 操作符拿到参数发起 http 请求获取源数据。
9595
- 利用 [map](https://www.learnrxjs.io/operators/transformation/map.html) 操作符根据过滤条件和排序条件对源数据进行处理,发出最终数据。
9696
- 利用 [BehaviorSubject](https://www.learnrxjs.io/subjects/behaviorsubject.html) 的特点, 在保存数据的同时,还可以对外提供一个可订阅的对象用于获取数据,用于 SearchBar 和 DateTabs 进行通信。
9797

98-
### Components 的核心结构
98+
## Components 的核心结构
9999

100100
```ts
101101
// search-bar.component.ts

0 commit comments

Comments
 (0)