mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 00:32:06 +08:00
43 lines
1.3 KiB
Markdown
43 lines
1.3 KiB
Markdown
# Storybook Channel
|
|
|
|
Storybook Channel is similar to an EventEmitter.
|
|
Channels are used with Storybook implementations to send/receive events between the Storybook Manager and the Storybook Renderer.
|
|
|
|
```js
|
|
class Channel {
|
|
addListener(type, listener) {}
|
|
addPeerListener(type, listener) {} // ignore events from itself
|
|
emit(type, ...args) {}
|
|
eventNames() {}
|
|
listenerCount(type) {}
|
|
listeners(type) {}
|
|
on(type, listener) {}
|
|
once(type, listener) {}
|
|
prependListener(type, listener) {}
|
|
prependOnceListener(type, listener) {}
|
|
removeAllListeners(type) {}
|
|
removeListener(type, listener) {}
|
|
}
|
|
```
|
|
|
|
The channel takes a Transport object as a parameter which will be used to send/receive messages. The transport object should implement this interface.
|
|
|
|
```js
|
|
class Transport {
|
|
send(event) {}
|
|
setHandler(handler) {}
|
|
}
|
|
```
|
|
|
|
Currently, channels are baked into storybook implementations and therefore this module is not designed to be used directly by addon developers. When developing addons, use the `getChannel` method exported by `@storybook/addons` module. For this to work, Storybook implementations should use the `setChannel` method before loading addons.
|
|
|
|
```js
|
|
import { addons } from '@storybook/addons';
|
|
|
|
const channel = addons.getChannel();
|
|
```
|
|
|
|
* * *
|
|
|
|
For more information visit: [storybook.js.org](https://storybook.js.org)
|