Files
agent-skills/skills/vueuse-functions/references/useSubject.md
Jason Woltje f5792c40be feat: Complete fleet — 94 skills across 10+ domains
Pulled ALL skills from 15 source repositories:
- anthropics/skills: 16 (docs, design, MCP, testing)
- obra/superpowers: 14 (TDD, debugging, agents, planning)
- coreyhaines31/marketingskills: 25 (marketing, CRO, SEO, growth)
- better-auth/skills: 5 (auth patterns)
- vercel-labs/agent-skills: 5 (React, design, Vercel)
- antfu/skills: 16 (Vue, Vite, Vitest, pnpm, Turborepo)
- Plus 13 individual skills from various repos

Mosaic Stack is not limited to coding — the Orchestrator and
subagents serve coding, business, design, marketing, writing,
logistics, analysis, and more.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 16:27:42 -06:00

53 lines
1.3 KiB
Markdown

---
category: '@RxJS'
---
# useSubject
Bind an RxJS [`Subject`](https://rxjs.dev/guide/subject) to a `ref` and propagate value changes both ways.
## Usage
<!-- TODO: import rxjs error if enable twoslash -->
```ts no-twoslash
import { useSubject } from '@vueuse/rxjs'
import { Subject } from 'rxjs'
const subject = new Subject()
// setup()
const subjectRef = useSubject(subject)
```
If you want to add custom error handling to a Subject that might error, you can supply an optional `onError` configuration. Without this, RxJS will treat any error in the supplied observable as an "unhandled error" and it will be thrown in a new call stack and reported to `window.onerror` (or `process.on('error')` if you happen to be in node).
```ts no-twoslash
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"
},
},)
```
## Type Declarations
```ts
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>
```