关于 angular-reactive
面向使用响应式编程和 RxJS 的 Angular 开发者的参考技能,介绍状态服务、基于 Observable 的数据访问、模板订阅、缓存和清理模式。
主要功能
- 01BehaviorSubject 状态模式
- 02基于 Observable 的服务
- 03async pipe 用法
- 04shareReplay 缓存
- 05takeUntil 清理
适用场景
- 01通过服务共享状态
- 02在模板中显示 Observable 数据
- 03缓存 HTTP 结果
- 04清理订阅
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oguzhan18/ angular-ecosystem-skills --skill angular-reactive安装后在 Claude Code 中输入/angular-reactive确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/discussions/_INDEX.mdreferences/docs/_INDEX.mdreferences/issues/_INDEX.mdreferences/releases/_INDEX.md详细介绍
Angular 响应式编程
版本: Angular 21 (2025) 标签: 响应式、Observables、RxJS、BehaviorSubject
最佳实践
- 使用 BehaviorSubject 管理状态
@Injectable({ providedIn: 'root' })
export class StateService {
private state = new BehaviorSubject<State>(initialState);
state$ = this.state.asObservable();
updateState(newState: Partial<State>) {
this.state.next({ ...this.state.value, ...newState });
}
}
- 在服务中使用 Observable
@Injectable({ providedIn: 'root' })
export class DataService {
private http = inject(HttpClient);
getData(): Observable<Data[]> {
return this.http.get<Data[]>('/api/data');
}
}
- 使用 async pipe
@Component({
template: `
@if (data$ | async; as data) {
{{ data.name }}
}
`
})
export class MyComponent {
data$ = this.service.getData();
}
- 使用 shareReplay 进行缓存
data$ = this.http.get('/api/data').pipe(
shareReplay(1)
);
- 使用 takeUntil 进行清理
@Component({})
export class MyComponent implements OnDestroy {
private destroy$ = new Subject<void>();
ngOnInit() {
this.data$.pipe(takeUntil(this.destroy$)).subscribe();
}
ngOnDestroy() {
this.destroy$.next();
this.destroy$.complete();
}
}
评论
支持 Markdown