kontakt
Software house
>
Tag
>
Storybook - narzędzie do tworzenia komponentów aplikacji
storybook.js

Storybook - narzędzie do tworzenia komponentów aplikacji

Data wpisu
Kamil Nahotko
Autor
Kamil Nahotko

Podczas pisania aplikacji ogromne znaczenie ma projektowanie oraz testowanie komponentów aplikacji. Niestety przeglądanie komponentów osobno może być trudne, lecz z pomocą przychodzi nam Storybook, dzięki niemu jesteśmy w stanie testować złożone działania i upewnić się, że napisane przez nas komponenty zawsze działają zgodnie z oczekiwaniami.

Czym jest Storybook?

Storybook jest narzędziem do tworzenia komponentów interfejsu aplikacji. Umożliwia przeglądanie komponentów, przeglądanie różnych stanów każdego komponentu oraz testowanie komponentów. Storybook sprawia, że tworzenie komponentów jest szybsze i łatwiejsze dzięki izolacji komponentów. Jesteśmy w stanie stworzyć całe interfejsy użytkownika bez konieczności poruszania się po aplikacji, a także pomaga w dokumentowaniu komponentów do ponownego użycia, a także daje możliwość testowania je wizualnie, aby zapobiec błędom. Storybook świetnie spisuje się wraz z biblioteką React, lecz także wspiera on takie technologie jak: Vue, Angular, Web Components, Ember, Svelte, Preact.

Storybook

Pierwsze kroki

Po instalacji Storybooka, możemy stworzyć swoje pierwsze story. Story to funkcja, która opisuje sposób renderowania danego komponentu i jest zapisana w formacie Component Story Format (CSF), a pliki kończą się na .stories.js lub .stories.ts. Poniższy kod przedstawia stworzenie story, który będzie przechowywać komponent z przyciskiem.

import React from 'react';
import { Button } from './Button';

export default {
title: 'Button',
component: Button,
};

export const Primary = () => <Button primary>Button</Button>;

Powyższe Story można ulepszyć o dodatkową koncepcję “args”, która pozwala na dynamicznym zmienianiu argumentów komponentu, czyli będziemy wstanie naszemu przyciskowi np. zmienić dynamicznie kolor, rozmiar, tekst.

import React from 'react';
import { Button } from './Button';

export default {
title: 'Button',
component: Button,
};

const Template = (args) => <Button {...args} />;

export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};
Praca: #storybook
0 Aktualnie brak ofert pracy
Wszystkie oferty
Case study: #storybook
0 Aktualnie brak case study
Zobacz wszystkie