useSubject
RxJS Subject
をref
にバインドし、値の変更を双方向に伝播します。
デモ
@vueuse/rxjsアドオンで利用可能です。使い方
ts
import { useSubject } from '@vueuse/rxjs'
import { Subject } from 'rxjs'
const subject = new Subject()
// setup()
const subjectRef = useSubject(subject)
エラーが発生する可能性のあるSubjectにカスタムエラー処理を追加したい場合は、オプションのonError
構成を指定できます。 これがないと、RxJSは提供されたObservableのエラーを「未処理エラー」として扱い、新しいコールスタックでスローされ、window.onerror
(または、ノードにいる場合はprocess.on('error')
)に報告されます。
ts
import { useSubject } from '@vueuse/rxjs'
import { Subject } from 'rxjs'
const subject = new Subject()
// setup()
const subjectRef = useSubject(subject, {
onError: (err) => {
console.log(err.message) // "oops"
},
},)
型宣言
typescript
export interface UseSubjectOptions<I = undefined>
extends Omit<UseObservableOptions<I>, "initialValue"> {}
export declare function useSubject<H>(
subject: BehaviorSubject<H>,
options?: UseSubjectOptions,
): Ref<H>
export declare function useSubject<H>(
subject: Subject<H>,
options?: UseSubjectOptions,
): Ref<H | undefined>
ソース
貢献者
変更履歴
v12.0.0-beta.1
2024/11/21