What is @storybook/preview-web?
The @storybook/preview-web package is a part of the Storybook ecosystem, which is an open-source tool for developing UI components in isolation for React, Vue, Angular, and more. It allows developers to create a development environment for showcasing components, enabling interactive testing and providing a platform for sharing and receiving feedback on UI implementations. The preview-web package specifically deals with rendering stories for the web and handling various aspects of the Storybook UI.
What are @storybook/preview-web's main functionalities?
Rendering stories
This feature allows developers to render stories within the Storybook environment. The code sample shows how to import the PreviewWeb class and initialize it with specific parameters such as storyId and viewMode.
import { PreviewWeb } from '@storybook/preview-web';
const preview = new PreviewWeb();
preview.initialize({ storyId, viewMode });
Handling URL changes
The package can respond to URL changes to update the displayed story accordingly. The code sample demonstrates how to use the onUrlChange method to handle changes in the story ID or view mode.
import { PreviewWeb } from '@storybook/preview-web';
const preview = new PreviewWeb();
preview.onUrlChange({ storyId, viewMode });
Customizing the Storybook UI
Developers can customize the Storybook UI by integrating with the addons package. The code sample illustrates how to set the preview instance in the addons registry.
import { addons } from '@storybook/addons';
import { PreviewWeb } from '@storybook/preview-web';
const preview = new PreviewWeb();
addons.setPreview(preview);
Other packages similar to @storybook/preview-web
react-cosmos
React Cosmos is a development tool for creating reusable React components. It scans your project for components and enables you to render them in different states while developing. It is similar to Storybook in that it provides an isolated environment for components, but it focuses more on the component 'playground' aspect rather than the storytelling aspect of Storybook.
docz
Docz leverages MDX to help you document your components with ease. It provides a similar experience to Storybook by allowing developers to write interactive documentation and examples, but it emphasizes simplicity and the use of Markdown for documentation over the more extensive plugin ecosystem and UI customization options that Storybook offers.
Preview (Web)
This is the main API for the (web) version of the Storybook Preview.
The preview's job is:
-
Read and update the URL (via the URL Store)
-
Listen to instructions on the channel and emit events as things occur.
-
Render the current selection to the web view in either story or docs mode.
V7 Store vs Legacy (V6)
The story store is designed to load stories 'on demand', and will operate in this fashion if the storyStoreV7
feature is enabled.
However, for back-compat reasons, in v6 mode, we need to load all stories, synchronously on bootup, emitting the SET_STORIES
event.
In V7 mode we do not emit that event, instead preferring the STORY_PREPARED
event.