← Back to React Course | Chapter 13: Advanced React & Architecture | Lesson 11 of 14

Storybook से Component Documentation

Storybook आपके components के लिए एक showroom जैसा है — आप हर furniture piece को इसके अपने अलग, हर color और style में देख सकते हैं, बिना पहले पूरा house build किए।
Syntax
markup
// Component.stories.jsx
import Component from "./Component";

export default {
  title: "Group/Component",
  component: Component,
};

export const StoryName = {
  args: { propName: "value" },
};

Components को Isolation में क्यों Develop करें

एक component को सिर्फ अपने full app के अंदर build और check करने का मतलब है एक छोटा सा piece देखने के लिए कई screens navigate करना, और इसके सारे variations (जैसे एक Button की default, disabled, और loading states) side by side देखना hard बनाता है।

Storybook हर component को इसके अपने अलग render करता है, हर documented state directly दिखाते हुए।

Note: यह खासकर एक shared component library के लिए valuable है जो app के कई parts में या कई teams द्वारा उपयोग होती है।
Warning: Storybook एक separate npm package है और इसका अपना dev server/build tool है — यह इस CDN-only preview के अंदर run हुआ demonstrate नहीं हो सकता।

उदाहरण: Why Develop Components in Isolation

markup
// Run in your local React project (npm install required)
// Button.stories.js
import Button from './Button';

export default { component: Button };

export const Default = { args: { children: 'Click me' } };
export const Disabled = { args: { children: 'Disabled', disabled: true } };

एक Story लिखना

एक story एक छोटा object है जो किसी component को render करने के एक specific तरीके को describe करता है — usually सिर्फ इसे pass करने के लिए args (props) का एक set। Storybook हर exported story को इसके UI में अपने browsable entry के रूप में automatically render करता है, आपको वह exact variation देखने और इससे interact करने देते हुए।

Note: Stories का नाम उस state के बाद रखें जो वे represent करती हैं (Default, Loading, Disabled, WithLongText) ताकि वे Storybook के sidebar में self-documenting हों।
Warning: एक component जिसकी actual props बदल गई हों लेकिन जिसकी stories match करने के लिए updated न हुई हों Storybook में misleading या broken examples दिखा सकता है।

उदाहरण: Writing a Story

markup
// Run in your local React project (npm install required)
// Card.stories.js
import Card from './Card';

export default { component: Card };

export const WithImage = {
  args: { title: 'Mountain View', imageUrl: '/mountain.jpg' },
};
export const NoImage = {
  args: { title: 'No Image Provided' },
};

Storybook vs. Automated Tests

Storybook primarily एक visual development और documentation tool है — एक component की states browse और manually verify करने का एक great तरीका। यह Jest/Testing Library जैसे automated tests का replacement नहीं है, जो programmatically verify करते हैं कि behavior बिना किसी human के हर state को देखे सही है।

Note: कुछ teams दोनों combine करती हैं: visual review के लिए Storybook stories, plus separate automated tests जो assert करते हैं कि वही states correctly behave करती हैं।
Warning: सिर्फ Storybook stories को manually eyeball करने पर निर्भर रहना, बिना किसी automated tests के, मतलब है regressions reviews के बीच unnoticed slip कर सकते हैं।

उदाहरण: Storybook vs. Automated Tests

markup
// Run in your local React project (npm install required)
// Storybook: for visually browsing states
// Button.stories.js -> shows Default, Disabled, Loading visually

// Testing Library: for automated verification
// Button.test.js
test('disabled button cannot be clicked', () => {
  render(<Button disabled>Click</Button>);
  expect(screen.getByRole('button')).toBeDisabled();
});
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. Stories लिखना जो किसी component की meaningful prop variations cover नहीं करतीं, इसकी different states document करने का point miss करते हुए।
  2. Stories को stale होने देना जब component की actual props बदलें और उन्हें update न करना।
  3. Storybook को real tests के replacement के रूप में treat करना, जब यह primarily एक documentation और visual-development tool है।
चैप्टर सारांश
  • Storybook UI components को isolation में, एक full running app के बाहर, develop और document करने का एक tool है।
  • एक story एक component की एक specific rendered state define करती है, जैसे अलग variants वाला एक Button।
  • Storybook हर component की हर state visually browse करना आसान बनाता है उन तक पहुंचने के लिए पूरे app navigate किए बिना।
  • यह Jest/Testing Library जैसे automated tests के साथ अच्छा pair होता है, लेकिन इन्हें replace नहीं करता।
ब्राउज़र सपोर्ट

npm install storybook चाहिए — अपना separate dev server run करता है, इस CDN-only sandbox में available नहीं।

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.