angular-reactive について
リアクティブプログラミングと RxJS を扱う Angular 開発者向けのリファレンススキルです。状態サービス、Observable によるデータ取得、テンプレートでの購読、キャッシュ、後処理のパターンを紹介します。
主な機能
- 01BehaviorSubject による状態管理
- 02Observable ベースのサービス
- 03async pipe の利用
- 04shareReplay によるキャッシュ
- 05takeUntil による後処理
活用シーン
- 01サービスを介した状態共有
- 02テンプレートでの Observable データ表示
- 03HTTP 結果のキャッシュ
- 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) タグ: リアクティブ、Observable、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 パイプを使用します
@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 対応