Upgrading @vueuse/core 14 to 15
Breaking14.4.0 โ 15.0.0Breaking5Platform1New3Changed1Fixed9
BreakingUpgrade verdict
5 breaking changes and a platform requirement change.
In plain terms
- The templateRef helper is removed, so code using it must switch to another approach.
- Old timer options are gone; use the scheduler option instead.
- Throttled functions now run once more at the end of the throttle window by default.
- Event source message handling changes so both onmessage and addEventListener listeners fire.
Must act Top 4 of 6 that need code or config changes
Requires Node.js >=22 from 15.0.0 (none stated before).
What you must change
Breaking5
Drops the templateRef utility.
templateRefRemoves deprecated timer options in favor of scheduler.
scheduleruseThrottleFn changes default trailing option from false to true.
useThrottleFntrailinguseEventSource handles SSE message type and triggers both onmessage and addEventListener.
useEventSourceonmessageaddEventListeneruseIDBKeyval syncs changes across tabs.
useIDBKeyvalPlatform1
Drops support for Node.js 20.
API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
function templateRef<T extends HTMLElement | SVGElement | Component | null, Keys extends string = string>(key: Keys, initialValue?: T | null): Readonly<Ref<T>> - removed:
property UseCountdownOptions.immediate?: boolean - removed:
property UseCountdownOptions.interval?: MaybeRefOrGetter<number> - removed:
property UseElementByPointOptions.immediate?: boolean - removed:
property UseElementByPointOptions.interval?: 'requestAnimationFrame' | number - removed:
property UseMemoryOptions.immediate?: boolean - removed:
property UseMemoryOptions.immediateCallback?: boolean - removed:
property UseMemoryOptions.interval?: number - removed:
property UseNowOptions.immediate?: boolean - removed:
property UseNowOptions.interval?: 'requestAnimationFrame' | number - removed:
property UseTimeAgoIntlOptions.updateInterval?: number - removed:
property UseTimeAgoOptions.updateInterval?: number - removed:
property UseTimestampOptions.immediate?: boolean - removed:
property UseTimestampOptions.interval?: 'requestAnimationFrame' | number - removed:
property UseVibrateOptions.interval?: number - changed:
function useCloned<T>(source: MaybeRefOrGetter<T>, options?: UseClonedOptions): UseClonedReturn<T> โ function useCloned<T>(source: MaybeRefOrGetter<T>, options?: UseClonedOptions<T>): UseClonedReturn<T> - changed:
property UseWebSocketOptions.heartbeat?: boolean | ConfigurableScheduler & { message?: MaybeRefOrGetter<WebSocketHeartbeatMessage>; responseMessage?: MaybeRefOrGetter<WebSocketHeartbeatMessage>; interval?: number; pongTimeout?: number } โ property UseWebSocketOptions.heartbeat?: boolean | ConfigurableScheduler & { message?: MaybeRefOrGetter<WebSocketHeartbeatMessage>; responseMessage?: MaybeRefOrGetter<WebSocketHeartbeatMessage>; pongTimeout?: number } - added:
function useLiveAnnouncer(options?: UseLiveAnnouncerOptions): UseLiveAnnouncerReturn - added:
function useTemporalNow(options?: UseTemporalNowOptions): UseTemporalNowReturn - added:
function useWebMCP<Args = Record<string, any>, Result = unknown>(options: UseWebMCPOptions<Args, Result>): UseWebMCPReturn - added:
index WebMCPToolAnnotations[key: string]: unknown - added:
index WebMCPToolContent[key: string]: unknown - added:
interface ModelContext - added:
interface UseLiveAnnouncerOptions extends ConfigurableWindow - added:
interface UseLiveAnnouncerReturn - added:
interface UseTemporalNowOptions extends ConfigurableScheduler - added:
interface UseTemporalNowReturn extends Pausable - added:
interface UseWebMCPOptions<Args, Result> extends ConfigurableDocument - added:
interface UseWebMCPReturn extends Supportable - added:
interface WebMCPToolAnnotations - added:
interface WebMCPToolContent - added:
interface WebMCPToolDescriptor - added:
interface WebMCPToolResponse - added:
property ModelContext.registerTool: (tool: WebMCPToolDescriptor, options?: { signal?: AbortSignal }) => void - added:
property UseLiveAnnouncerOptions.idPrefix?: string - added:
property UseLiveAnnouncerReturn.announce: (message: string, mode?: 'polite' | 'assertive', timeout?: number) => void - added:
property UseLiveAnnouncerReturn.assertive: (message: string, timeout?: number) => void - added:
property UseLiveAnnouncerReturn.polite: (message: string, timeout?: number) => void - added:
property UseTemporalNowOptions.calendar?: string - added:
property UseTemporalNowOptions.temporal?: typeof Temporal - added:
property UseTemporalNowOptions.timezone?: string - added:
property UseTemporalNowReturn.add: (duration: Temporal.DurationLike) => Temporal.ZonedDateTime - added:
property UseTemporalNowReturn.calendar: Ref<string> - added:
property UseTemporalNowReturn.compare: (other: Temporal.ZonedDateTime | string) => number - added:
property UseTemporalNowReturn.format: (options?: Intl.DateTimeFormatOptions) => string - added:
property UseTemporalNowReturn.now: Ref<Temporal.ZonedDateTime> - added:
property UseTemporalNowReturn.subtract: (duration: Temporal.DurationLike) => Temporal.ZonedDateTime - added:
property UseTemporalNowReturn.timezone: Ref<string> - added:
property UseTemporalNowReturn.toCalendar: (calendar: string) => Temporal.ZonedDateTime - added:
property UseTemporalNowReturn.toPlainDate: () => Temporal.PlainDate - added:
property UseTemporalNowReturn.toPlainDateTime: () => Temporal.PlainDateTime - added:
property UseTemporalNowReturn.toPlainTime: () => Temporal.PlainTime - added:
property UseTemporalNowReturn.toTimezone: (timezone: string) => Temporal.ZonedDateTime - added:
property UseWebMCPOptions.annotations?: MaybeRefOrGetter<WebMCPToolAnnotations | undefined> - added:
property UseWebMCPOptions.description: MaybeRefOrGetter<string> - added:
property UseWebMCPOptions.enabled?: MaybeRefOrGetter<boolean> - added:
property UseWebMCPOptions.execute: (args: Args) => Result | Promise<Result> - added:
property UseWebMCPOptions.formatOutput?: (result: Result, args: Args) => unknown - added:
property UseWebMCPOptions.inputSchema?: MaybeRefOrGetter<object | undefined> - added:
property UseWebMCPOptions.name: MaybeRefOrGetter<string> - added:
property UseWebMCPOptions.onError?: (error: unknown) => void - added:
property UseWebMCPReturn.error: ShallowRef<Error | null> - added:
property UseWebMCPReturn.isRegistered: ShallowRef<boolean> - added:
property WebMCPToolAnnotations.readOnlyHint?: boolean - added:
property WebMCPToolAnnotations.untrustedContentHint?: boolean - added:
property WebMCPToolContent.text?: string - added:
property WebMCPToolContent.type: string - added:
property WebMCPToolDescriptor.annotations?: WebMCPToolAnnotations - added:
property WebMCPToolDescriptor.description: string - added:
property WebMCPToolDescriptor.execute: (args: any) => Promise<WebMCPToolResponse> | WebMCPToolResponse - added:
property WebMCPToolDescriptor.inputSchema?: object - added:
property WebMCPToolDescriptor.name: string - added:
property WebMCPToolResponse.content: WebMCPToolContent[] - added:
property WebMCPToolResponse.isError?: boolean