--- category: Browser --- # useBroadcastChannel Reactive [BroadcastChannel API](https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel). Closes a broadcast channel automatically component unmounted. ## Usage The BroadcastChannel interface represents a named channel that any browsing context of a given origin can subscribe to. It allows communication between different documents (in different windows, tabs, frames, or iframes) of the same origin. Messages are broadcasted via a message event fired at all BroadcastChannel objects listening to the channel. ```ts import { useBroadcastChannel } from '@vueuse/core' import { shallowRef } from 'vue' const { isSupported, channel, post, close, error, isClosed, } = useBroadcastChannel({ name: 'vueuse-demo-channel' }) const message = shallowRef('') message.value = 'Hello, VueUse World!' // Post the message to the broadcast channel: post(message.value) // Option to close the channel if you wish: close() ``` ## Type Declarations ```ts export interface UseBroadcastChannelOptions extends ConfigurableWindow { /** * The name of the channel. */ name: string } /** * Reactive BroadcastChannel * * @see https://vueuse.org/useBroadcastChannel * @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel * @param options * */ export declare function useBroadcastChannel( options: UseBroadcastChannelOptions, ): UseBroadcastChannelReturn export interface UseBroadcastChannelReturn { isSupported: ComputedRef channel: Ref data: Ref post: (data: P) => void close: () => void error: ShallowRef isClosed: ShallowRef } ```