Skip to content

useBroadcastChannel

Category
Export Size
917 B
Last Changed
6 months ago

Reactive BroadcastChannel API.

Closes a broadcast channel automatically component unmounted.

Demo

Supported: true

Please open this page in at least two tabs

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
<
D
,
P
>(
options
: UseBroadcastChannelOptions,
):
UseBroadcastChannelReturn
<
D
,
P
>
export interface
UseBroadcastChannelReturn
<
D
,
P
> {
isSupported
:
ComputedRef
<boolean>
channel
:
Ref
<BroadcastChannel | undefined>
data
:
Ref
<
D
>
post
: (
data
:
P
) => void
close
: () => void
error
:
ShallowRef
<Event | null>
isClosed
:
ShallowRef
<boolean>
}

Source

SourceDemoDocs

Contributors

Anthony Fu
IlyaL
丶远方
Jelf
SerKo
Fernando Fernández
Alex Liu
Anthony Fu
Captain
Michael J. Roberts

Changelog

v12.5.0 on
c6c6e - feat: use useEventListener where it was not being used (#4479)
v12.0.0-beta.1 on
0a9ed - feat!: drop Vue 2 support, optimize bundles and clean up (#4349)

Released under the MIT License.

FREE WEEKEND
Free access to Official Vue.js Certification Training
NOW LIVE
Start Now
29
hours
:
16
minutes
:
24
seconds
: