storybook.js 擴充套件,提供即時 React Story 編輯和預覽

在 Github 上檢視

storybook-addon-react-live-edit

DEMO

安裝

yarn add -D storybook-addon-react-live-edit

設定 Storybook

要讓此擴充套件在您的 Storybook 中生效,您必須註冊面板、addLiveSource Story 建立器,並選擇性地新增一個範圍裝飾器,使其他元件和工具在即時編輯器範圍內可用

註冊面板

新增至 .storybook/addons.js

import 'storybook-addon-react-live-edit/dist/register';

註冊 addLiveSource Story 建立器

新增至 .storybook/config.js

import {setAddon} from '@storybook/react';
import LiveEdit, {setOptions} from 'storybook-addon-react-live-edit';

setOptions({ theme: 'darcula', presets: ['react'] });

setAddon(LiveEdit);

新增 withLiveEditScope Story 裝飾器

將 addDecorator 新增至 .storybook/config.js

import {addDecorator} from '@storybook/react';
import {withLiveEditScope} from 'storybook-addon-react-live-edit';

import ExternalComponent from 'a-apackage';

addDecorator(withLiveEditScope({ ExternalComponent }));

將 addDecorator 新增至特定的 Story

import {withLiveEditScope} from 'storybook-addon-react-live-edit';
import ExternalComponent from 'a-apackage';

storiesOf("Demo", module)
  .addDecorator(withLiveEditScope({ React, ExternalComponent }))
  .addLiveSource('demo', `return <div>{scopeTest}</div>`);

用法

當 LiveEdit 擴充套件透過 Storybook 的 setAddon 函數註冊時,將新增一個方法 addLiveSource,以從字串形式提供的原始碼新增 Story。此原始碼可在「即時編輯」面板中編輯

storiesOf("Demo", module)
  .addLiveSource('demo', `return <div>{scopeTest}</div>`);

您可以使用 withLiveEdit Story 建立器

storiesOf("Demo", module)
  .add('demo', withLiveEdit(`return <div>{scopeTest}</div>`));

API

addLiveSource

addLiveSource(name, source[, scope]) 
  • name (字串,必填) - Story 名稱
  • source (字串,必填) - Story 原始碼,將在預覽中渲染,並可在「即時編輯」面板中編輯
  • scope (物件,選填) - 提供給渲染 Story 的變數,這些可以是額外的元件、工具或任何其他資料。範圍會與先前由 withLiveEditScope 裝飾器提供的所有變數合併。

withLiveEdit

withLiveEdit(source[, scope]) 
  • source (字串,必填) - Story 原始碼,將在預覽中渲染,並可在「即時編輯」面板中編輯
  • scope (物件,選填) - 提供給渲染 Story 的變數,這些可以是額外的元件、工具或任何其他資料。範圍會與先前由 withLiveEditScope 裝飾器提供的所有變數合併。

withLiveEditScope 裝飾器

withLiveEditScope(scope)
  • scope (物件,必填) - 提供給渲染 Story 的變數,這些可以是額外的元件、工具或任何其他資料。範圍會與先前由 withLiveEditScope 裝飾器提供的所有變數合併。應該在 scope 物件中匯入並提供 React。

範例

要執行提供的範例,請執行以下命令,Storybook 將在 3000 埠上執行

yarn example