{"id":37994,"date":"2023-09-24T15:15:37","date_gmt":"2023-02-25T19:57:34","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/"},"modified":"2024-05-04T01:21:03","modified_gmt":"2024-05-03T17:21:03","slug":"%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/","title":{"rendered":"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e"},"content":{"rendered":"<h2>\u8fd9\u7bc7\u6587\u7ae0\u7684\u7b80\u8981\u5185\u5bb9<\/h2>\n<p>\u5728\u4e2a\u4eba\u5f00\u53d1\u4e2d\uff0c\u7ecf\u5e38\u4f1a\u9047\u5230\u9700\u8981\u4e00\u4e2a\u7ec4\u4ef6\u76ee\u5f55\u7684\u60c5\u51b5\u3002\u4e0d\u8fc7\uff0c\u53ea\u8981\u80fd\u591f\u8fdb\u884c\u7b80\u5355\u7684\u663e\u793a\u786e\u8ba4\uff0c\u5feb\u901f\u51c6\u5907\u5e76\u4e14\u8f7b\u4fbf\u7684\u5de5\u5177\u5c31\u53ef\u4ee5\u4e86\u3002\u5728\u8fd9\u79cd\u60c5\u51b5\u4e0b\uff0c\u6211\u89c9\u5f97\u5e76\u4e0d\u9700\u8981\u7279\u610f\u4f7f\u7528Storybook\u3002<\/p>\n<p>\u56e0\u6b64\uff0c\u6211\u51b3\u5b9a\u5c1d\u8bd5\u4e00\u4e0b\u53ea\u662f\u542c\u8bf4\u8fc7\u540d\u5b57\u7684 Alternative Storybook &#8211; Ladle\u3002<\/p>\n<p>&nbsp;<\/p>\n<h2>\u51c6\u5907React<\/h2>\n<p>\u66ab\u6642\u70ba\u4e86\u6bd4\u8f03\uff0c\u6211\u60f3\u8a2d\u7f6e Storybook\uff0c\u4f46\u7121\u6cd5\u5728\u7a7a\u7684\u5c08\u6848\u4e0b\u57f7\u884cstorybook init\u6307\u4ee4\u3002<br \/>\n\u56e0\u6b64\uff0c\u6211\u5c07\u7c21\u55ae\u6e96\u5099React\u3002<\/p>\n<pre class=\"post-pre\"><code>bun init\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>bun i react react-dom\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>bun i <span class=\"nt\">-d<\/span> @types\/react @types\/react-dom\r\n<\/code><\/pre>\n<p>\u76ee\u524d\u7684\u6587\u4ef6\u7d50\u69cb\u7b49\u5982\u4e0b\u6240\u793a\u3002<\/p>\n<pre class=\"post-pre\"><code>.\r\n\u251c\u2500\u2500 README.md\r\n\u251c\u2500\u2500 bun.lockb\r\n\u251c\u2500\u2500 index.ts\r\n\u251c\u2500\u2500 package.json\r\n\u2514\u2500\u2500 tsconfig.json\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n  <span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"comparing-storybook-ladle\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"module\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"index.ts\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"module\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"dependencies\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"react\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.0\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"react-dom\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.0\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"nl\">\"devDependencies\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"@types\/react\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.42\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@types\/react-dom\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.17\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"bun-types\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"latest\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"nl\">\"peerDependencies\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"typescript\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^5.0.0\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h2>\u6545\u4e8b\u4e66 sh\u016b)<\/h2>\n<p>\u6211\u5011\u9019\u6b21\u6c92\u6709\u6253\u7b97\u88fd\u4f5c\u61c9\u7528\u7a0b\u5f0f\u672c\u8eab\uff0c\u6240\u4ee5\u6211\u5011\u5c07\u7e7c\u7e8c\u9032\u884cStorybook\u7684\u8a2d\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>bunx storybook@latest init\r\n<\/code><\/pre>\n<p>\u7b49\u4e862\u30013\u5206\u949f\u540e\uff0c\u6210\u529f\u5730\u542f\u52a8\u4e86\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d31e837434c4406c60662\/16-0.png\" alt=\"\" \/><\/div>\n<p>\u4ee5\u4e0b\u662f\u5f53\u524d\u6587\u4ef6\u7ed3\u6784\u7b49\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code>.\r\n\u251c\u2500\u2500 README.md\r\n\u251c\u2500\u2500 bun.lockb\r\n\u251c\u2500\u2500 index.ts\r\n\u251c\u2500\u2500 package.json\r\n\u251c\u2500\u2500 stories\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Button.stories.ts\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Button.tsx\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Configure.mdx\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Header.stories.ts\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Header.tsx\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Page.stories.ts\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 Page.tsx\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 assets\r\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 \u7701\u7565\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 button.css\r\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 header.css\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 page.css\r\n\u2514\u2500\u2500 tsconfig.json\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n  <span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"comparing-storybook-ladle\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"module\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"index.ts\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"module\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"nl\">\"dependencies\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"react\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.0\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"react-dom\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.0\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"nl\">\"devDependencies\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"@storybook\/addon-essentials\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@storybook\/addon-interactions\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@storybook\/addon-links\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@storybook\/addon-onboarding\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^1.0.9\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@storybook\/blocks\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@storybook\/react\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@storybook\/react-vite\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@storybook\/test\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@types\/react\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.42\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"@types\/react-dom\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^18.2.17\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"bun-types\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"latest\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"storybook\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^7.6.4\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"nl\">\"peerDependencies\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"typescript\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"^5.0.0\"<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"nl\">\"scripts\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"storybook\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"storybook dev -p 6006\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"build-storybook\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"storybook build\"<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u81ea\u52a8\u751f\u6210\u7684\u5404\u79cd\u5404\u6837\u7684\u529f\u80fd\u7531init\u547d\u4ee4\u8d1f\u8d23\u786e\u5b9e\u5f88\u65b9\u4fbf\uff0c\u4f46\u662f\u4ec5\u51ed\u8981\u51c6\u5907\u4e09\u4e2a\u7ec4\u4ef6\u548c\u4e00\u4e2a\u6587\u6863\u5c31\u9700\u8981\u82b1\u8d39\u5f88\u957f\u65f6\u95f4\u7684\u5370\u8c61\u3002<br \/>\n\u6b64\u5916\uff0c\u6211\u662f\u201c\u4f9d\u5b58\u5173\u7cfb\u8d8a\u5c11\u8d8a\u597d\u201d\u7684\u6d3e\u522b\uff0c\u6240\u4ee5\u4e00\u6b21\u6027\u6709\u592a\u591a\u7684\u4f9d\u8d56\u8ba9\u6211\u611f\u5230\u6709\u4e9b\u6c14\u9981\u3002<\/p>\n<p>\u8bf7\u4e0d\u8981\u81ea\u884c\u5b89\u88c5 @storybook\/addon-onboarding \u8fd9\u6837\u7684\u4e1c\u897f\u8fdb\u884cOnboarding\u3002<\/p>\n<h2>\u8200\u52fa<\/h2>\n<p>\u8fd9\u91cc\u5f00\u59cb\u662f\u6b63\u9898\u3002<br \/>\n\u6211\u5c06\u5c1d\u8bd5\u8bbe\u7f6eLadle\u3002<br \/>\n\u65e2\u7136\u8fd9\u6837\uff0c\u6211\u4f1a\u5c3d\u529b\u4f7f\u5176\u663e\u793a\u4e0e\u7531storybook init\u751f\u6210\u7684\u5185\u5bb9\u76f8\u540c\u3002<\/p>\n<p>\u56de\u5230\u51c6\u5907React\u9636\u6bb5\uff0c\u7ee7\u7eed\u8fdb\u884c\u8bbe\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>bun i @ladle\/react\r\n<\/code><\/pre>\n<p>\u8ba9\u6211\u4eec\u5c1d\u8bd5\u6267\u884c storybook init \u751f\u6210\u7684\u4ee3\u7801\uff0c\u5e76\u663e\u793a\u4ee5\u4e0b\u7684 4 \u4e2a\u5185\u5bb9\u3002<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Button.stories.ts<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Header.stories.ts<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Page.stories.ts<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">Configure.mdx<\/ul>\n<h3>\u5171\u540c\u4e4b\u5904-\u66f4\u6539\u6587\u4ef6\u6269\u5c55\u540d<\/h3>\n<p>\u6545\u4e8b\u4e66\u4f7f\u7528.ts\u7684\u6587\u4ef6\u6269\u5c55\u540d\u662f\u53ef\u4ee5\u7684\uff0c\u4f46\u662f\u52fa\u5b50\u5fc5\u987b\u4f7f\u7528.tsx\u5426\u5219\u7ec4\u4ef6\u65e0\u6cd5\u8fd0\u884c\u3002<\/p>\n<p>\u6b64\u5916\uff0c\u8fd8\u9700\u8981\u5c06.mdx\u66f4\u6539\u4e3a.stories.mdx\u3002<\/p>\n<h3>\u6309\u94ae<\/h3>\n<p>\u516c\u5f0f\u6587\u6863\u7684\u64b0\u5199\u65b9\u5f0f\u6709\u4e9b\u6539\u53d8\uff0c\u4f46\u662f\u6309\u7167\u8fd9\u6837\u7684\u65b9\u5f0f\u505a\uff0c\u5b83\u5c31\u6b63\u5e38\u5de5\u4f5c\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"kd\">type<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">StoryDefault<\/span><span class=\"p\">,<\/span> <span class=\"nx\">Story<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@ladle\/react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Button<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/Button<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"kd\">type<\/span> <span class=\"nx\">StoryType<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Story<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">ComponentProps<\/span><span class=\"o\">&lt;<\/span><span class=\"k\">typeof<\/span> <span class=\"nx\">Button<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"kd\">const<\/span> <span class=\"nx\">ButtonStory<\/span><span class=\"p\">:<\/span> <span class=\"nx\">StoryType<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">Button<\/span> <span class=\"si\">{<\/span><span class=\"p\">...<\/span><span class=\"nx\">props<\/span><span class=\"si\">}<\/span> <span class=\"p\">\/&gt;;<\/span>\r\n<span class=\"nx\">ButtonStory<\/span><span class=\"p\">.<\/span><span class=\"nx\">storyName<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Button<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"k\">default<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"na\">args<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"na\">primary<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"na\">size<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">medium<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"na\">label<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Button<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n  <span class=\"p\">},<\/span>\r\n  <span class=\"na\">argTypes<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n    <span class=\"na\">backgroundColor<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"na\">control<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">color<\/span><span class=\"dl\">\"<\/span><span class=\"p\">},<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"na\">size<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n      <span class=\"na\">control<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span><span class=\"na\">type<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">select<\/span><span class=\"dl\">\"<\/span><span class=\"p\">},<\/span>\r\n      <span class=\"na\">options<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span><span class=\"dl\">\"<\/span><span class=\"s2\">small<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">medium<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">large<\/span><span class=\"dl\">\"<\/span><span class=\"p\">],<\/span>\r\n    <span class=\"p\">},<\/span>\r\n  <span class=\"p\">}<\/span>\r\n<span class=\"p\">}<\/span> <span class=\"nx\">satisfies<\/span> <span class=\"nx\">StoryDefault<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">Primary<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ButtonStory<\/span><span class=\"p\">.<\/span><span class=\"nf\">bind<\/span><span class=\"p\">({});<\/span>\r\n<span class=\"nx\">Primary<\/span><span class=\"p\">.<\/span><span class=\"nx\">args<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"na\">primary<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n<span class=\"p\">};<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">Secondary<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ButtonStory<\/span><span class=\"p\">.<\/span><span class=\"nf\">bind<\/span><span class=\"p\">({});<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">Large<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ButtonStory<\/span><span class=\"p\">.<\/span><span class=\"nf\">bind<\/span><span class=\"p\">({});<\/span>\r\n<span class=\"nx\">Large<\/span><span class=\"p\">.<\/span><span class=\"nx\">args<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"na\">size<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">large<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n<span class=\"p\">};<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">Small<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">ButtonStory<\/span><span class=\"p\">.<\/span><span class=\"nf\">bind<\/span><span class=\"p\">({});<\/span>\r\n<span class=\"nx\">Small<\/span><span class=\"p\">.<\/span><span class=\"nx\">args<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"na\">size<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">small<\/span><span class=\"dl\">\"<\/span><span class=\"p\">,<\/span>\r\n<span class=\"p\">};<\/span>\r\n<\/code><\/pre>\n<p>\u5728\u516c\u5f0f\u4e2d\u4ecb\u7ecd\u7684\u5185\u5bb9\u5f80\u5f80\u662f\u5728stories\u6587\u4ef6\u4e2d\u9996\u6b21\u7f16\u5199\u6807\u8bb0\uff0c\u800c\u4e0d\u662f\u5bfc\u5165\u5728\u53e6\u4e00\u4e2a\u6587\u4ef6\u4e2d\u5b9a\u4e49\u7684\u7ec4\u4ef6\u3002<\/p>\n<p>\u53ea\u8981\u6309\u7167\u6240\u4ecb\u7ecd\u7684\u65b9\u6cd5\u8fdb\u884c\u6a21\u4eff\uff0c\u53ef\u80fd\u4f1a\u5bfc\u81f4 props \u7684\u7c7b\u578b\u88ab\u5199\u4e24\u6b21\uff0c\u6240\u4ee5\u4e3a\u4e86\u907f\u514d\u8fd9\u79cd\u60c5\u51b5\uff0c\u6211\u91c7\u7528\u4e86 type StoryType = Story&lt;React.ComponentProps&gt;; \u6765\u83b7\u53d6\u5e76\u6210\u529f\u89e3\u51b3\u4e86\u8fd9\u4e2a\u95ee\u9898\u3002<\/p>\n<p>&nbsp;<\/p>\n<p>\u6574\u9ad4\u4f86\u8aaa\uff0c\u6211\u89ba\u5f97 Storybook 6.x \u7cfb\u5217\u7684\u5beb\u4f5c\u65b9\u5f0f\u8207\u9019\u500b\u5f88\u76f8\u4f3c\u3002<\/p>\n<p>&nbsp;<\/p>\n<h3>\u6807\u9898<\/h3>\n<p>\u6309\u94ae\u51e0\u4e4e\u6ca1\u6709\u53d8\u5316\uff0c\u6240\u4ee5\u7701\u7565\u4e86\u8bf4\u660e\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"kd\">type<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Story<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@ladle\/react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Header<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/Header<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"kd\">type<\/span> <span class=\"nx\">StoryType<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Story<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">ComponentProps<\/span><span class=\"o\">&lt;<\/span><span class=\"k\">typeof<\/span> <span class=\"nx\">Header<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"kd\">const<\/span> <span class=\"nx\">HeaderStory<\/span><span class=\"p\">:<\/span> <span class=\"nx\">StoryType<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">Header<\/span> <span class=\"si\">{<\/span><span class=\"p\">...<\/span><span class=\"nx\">props<\/span><span class=\"si\">}<\/span> <span class=\"p\">\/&gt;;<\/span>\r\n<span class=\"nx\">HeaderStory<\/span><span class=\"p\">.<\/span><span class=\"nx\">storyName<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Header<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">LoggedIn<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">HeaderStory<\/span><span class=\"p\">.<\/span><span class=\"nf\">bind<\/span><span class=\"p\">({});<\/span>\r\n<span class=\"nx\">LoggedIn<\/span><span class=\"p\">.<\/span><span class=\"nx\">args<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\r\n  <span class=\"na\">user<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span> <span class=\"na\">name<\/span><span class=\"p\">:<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Jane Doe<\/span><span class=\"dl\">\"<\/span> <span class=\"p\">},<\/span>\r\n<span class=\"p\">};<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">LoggedOut<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">HeaderStory<\/span><span class=\"p\">.<\/span><span class=\"nf\">bind<\/span><span class=\"p\">({});<\/span>\r\n<\/code><\/pre>\n<h3>\u9875\u9762<\/h3>\n<p>\u7528storybook init\u521b\u5efa\u7684Page\u901a\u8fc7play\u51fd\u6570\u663e\u793a\u767b\u5f55\u72b6\u6001\u3002<br \/>\n\u867d\u7136\u5728Ladle\u4e2d\u4e5f\u53ef\u4ee5\u4f7f\u7528Playwright\u6765\u5b9e\u73b0\uff0c\u4f46\u5728Ladle\u7684\u4f9d\u8d56\u5173\u7cfb\u4e2d\u7684Vite\u548cfsevents\u51fa\u73b0\u4e86\u67d0\u4e9b\u9519\u8bef\uff0c\u65e0\u6cd5\u8fd0\u884c&#8230;&#8230;\u3002<\/p>\n<p>\u6211\u611f\u5230\u5f88\u6cae\u4e27\uff0c\u4f46\u8fd9\u6b21\u6211\u51b3\u5b9a\u653e\u5f03\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"k\">import<\/span> <span class=\"kd\">type<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Story<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">@ladle\/react<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n<span class=\"k\">import<\/span> <span class=\"p\">{<\/span> <span class=\"nx\">Page<\/span> <span class=\"p\">}<\/span> <span class=\"k\">from<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">.\/Page<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"kd\">type<\/span> <span class=\"nx\">StoryType<\/span> <span class=\"o\">=<\/span> <span class=\"nx\">Story<\/span><span class=\"o\">&lt;<\/span><span class=\"nx\">React<\/span><span class=\"p\">.<\/span><span class=\"nx\">ComponentProps<\/span><span class=\"o\">&lt;<\/span><span class=\"k\">typeof<\/span> <span class=\"nx\">Page<\/span><span class=\"o\">&gt;&gt;<\/span><span class=\"p\">;<\/span>\r\n\r\n<span class=\"k\">export<\/span> <span class=\"kd\">const<\/span> <span class=\"nx\">PageStory<\/span><span class=\"p\">:<\/span> <span class=\"nx\">StoryType<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"nx\">props<\/span><span class=\"p\">)<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">&lt;<\/span><span class=\"nc\">Page<\/span> <span class=\"si\">{<\/span><span class=\"p\">...<\/span><span class=\"nx\">props<\/span><span class=\"si\">}<\/span> <span class=\"p\">\/&gt;;<\/span>\r\n<span class=\"nx\">PageStory<\/span><span class=\"p\">.<\/span><span class=\"nx\">storyName<\/span> <span class=\"o\">=<\/span> <span class=\"dl\">\"<\/span><span class=\"s2\">Page<\/span><span class=\"dl\">\"<\/span><span class=\"p\">;<\/span>\r\n<\/code><\/pre>\n<h3>\u914d\u7f6e<\/h3>\n<p>\u53ea\u8981\u66f4\u6539\u4e86\u6587\u4ef6\u540e\u7f00\uff0c\u5c31\u80fd\u6210\u529f\u663e\u793a\u4e86\u3002<\/p>\n<h2>\u8bf7\u8fdb\u884c\u6bd4\u8f83<\/h2>\n<p>\u6211\u8ba4\u4e3a\uff0c\u6211\u4eec\u53ef\u4ee5\u5b9e\u73b0\u6587\u7ae0\u5f00\u5934\u6240\u63d0\u5230\u7684\u76ee\u6807\uff1a\u201c\u53ea\u9700\u8981\u786e\u8ba4\u663e\u793a\uff0c\u5e76\u4e14\u8fc5\u901f\u51c6\u5907\u597d\u4e14\u8f7b\u4fbf\u7684\u4e1c\u897f\u3002\u201d\u8fd9\u662f\u56e0\u4e3a\u5b83\u5177\u6709\u5feb\u901f\u542f\u52a8\u548c\u5c11\u4f9d\u8d56\u5173\u7cfb\u7b49\u7279\u70b9\u3002<\/p>\n<p>\u6211\u4e5f\u5f88\u9ad8\u5174\u4e0d\u518d\u9700\u8981\u914d\u7f6e\u6587\u4ef6\u548c\u50cf.ladle\u8fd9\u6837\u7684\u6587\u4ef6\u5939\u4e86\u3002<\/p>\n<p>\u867d\u7136\u5916\u89c2\u770b\u8d77\u6765\u7b80\u6d01\uff0c\u4f46\u662f\u540c\u65f6\u8ffd\u6c42\u5916\u89c2\u4e0a\u7684\u8c6a\u534e\u611f\u4e0e\u63d0\u51fa\u7684\u8981\u6c42\u4e0d\u591f\u4e00\u81f4\uff0c\u7ed9\u4eba\u4e00\u79cd\u4e0d\u591f\u7edf\u4e00\u7684\u611f\u89c9\uff0c\u4f46\u8fd9\u6837\u4e5f\u53ef\u4ee5\u63a5\u53d7\u3002<\/p>\n<p>\u7531\u4e8e\u516c\u5f0f\u6587\u6863\u4ee5\u5916\u7684\u4fe1\u606f\u51e0\u4e4e\u6ca1\u6709\uff0c\u6240\u4ee5\u5728\u5de5\u4f5c\u4e2d\u4f7f\u7528\u5b83\u8ba9\u6211\u611f\u5230\u5bb3\u6015\uff0c\u4f46\u662f\u5728\u4e2a\u4eba\u5f00\u53d1\u4e2d\uff0c\u6211\u60f3\u518d\u8bd5\u4e00\u6b21\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u7684\u7b80\u8981\u5185\u5bb9 \u5728\u4e2a\u4eba\u5f00\u53d1\u4e2d\uff0c\u7ecf\u5e38\u4f1a\u9047\u5230\u9700\u8981\u4e00\u4e2a\u7ec4\u4ef6\u76ee\u5f55\u7684\u60c5\u51b5\u3002\u4e0d\u8fc7\uff0c\u53ea\u8981\u80fd\u591f\u8fdb\u884c\u7b80\u5355\u7684\u663e\u793a\u786e\u8ba4\uff0c\u5feb\u901f\u51c6\u5907 [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-37994","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bstorybook\u548cladle\u7684\u8bbe\u7f6e\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e\" \/>\n<meta property=\"og:description\" content=\"\u8fd9\u7bc7\u6587\u7ae0\u7684\u7b80\u8981\u5185\u5bb9 \u5728\u4e2a\u4eba\u5f00\u53d1\u4e2d\uff0c\u7ecf\u5e38\u4f1a\u9047\u5230\u9700\u8981\u4e00\u4e2a\u7ec4\u4ef6\u76ee\u5f55\u7684\u60c5\u51b5\u3002\u4e0d\u8fc7\uff0c\u53ea\u8981\u80fd\u591f\u8fdb\u884c\u7b80\u5355\u7684\u663e\u793a\u786e\u8ba4\uff0c\u5feb\u901f\u51c6\u5907 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bstorybook\u548cladle\u7684\u8bbe\u7f6e\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-25T19:57:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T17:21:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d31e837434c4406c60662\/16-0.png\" \/>\n<meta name=\"author\" content=\"\u79d1, \u96c5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u79d1, \u96c5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/\",\"name\":\"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-02-25T19:57:34+00:00\",\"dateModified\":\"2024-05-03T17:21:03+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a\",\"name\":\"\u79d1, \u96c5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g\",\"caption\":\"\u79d1, \u96c5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bstorybook\u548cladle\u7684\u8bbe\u7f6e\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e","og_description":"\u8fd9\u7bc7\u6587\u7ae0\u7684\u7b80\u8981\u5185\u5bb9 \u5728\u4e2a\u4eba\u5f00\u53d1\u4e2d\uff0c\u7ecf\u5e38\u4f1a\u9047\u5230\u9700\u8981\u4e00\u4e2a\u7ec4\u4ef6\u76ee\u5f55\u7684\u60c5\u51b5\u3002\u4e0d\u8fc7\uff0c\u53ea\u8981\u80fd\u591f\u8fdb\u884c\u7b80\u5355\u7684\u663e\u793a\u786e\u8ba4\uff0c\u5feb\u901f\u51c6\u5907 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bstorybook\u548cladle\u7684\u8bbe\u7f6e\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-02-25T19:57:34+00:00","article_modified_time":"2024-05-03T17:21:03+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d31e837434c4406c60662\/16-0.png"}],"author":"\u79d1, \u96c5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u79d1, \u96c5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/","name":"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-02-25T19:57:34+00:00","dateModified":"2024-05-03T17:21:03+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6211\u4eec\u6765\u6bd4\u8f83\u4e00\u4e0bStorybook\u548cLadle\u7684\u8bbe\u7f6e"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/41e222757cdd2a3365361328bd79970a","name":"\u79d1, \u96c5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b2d3e00a7df03689797ebd4af8c5827ba5af936849a71050ec331f4cf902c5d?s=96&d=mm&r=g","caption":"\u79d1, \u96c5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/keya\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%88%91%e4%bb%ac%e6%9d%a5%e6%af%94%e8%be%83%e4%b8%80%e4%b8%8bstorybook%e5%92%8cladle%e7%9a%84%e8%ae%be%e7%bd%ae%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/37994","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=37994"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/37994\/revisions"}],"predecessor-version":[{"id":95256,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/37994\/revisions\/95256"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=37994"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=37994"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=37994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}