Storybook : Tools Overpower Buat Bikin Dokumentasi Front End


Apa itu Storybook

Storybook adalah sebuah tool frontend yang digunakan untuk membangun komponen dan halaman antarmuka pengguna (UI) secara terpisah. Tool ini membantu mengembangkan dan membagikan state yang sulit dijangkau tanpa perlu menjalankan seluruh aplikasi Anda. Ribuan tim menggunakan Storybook untuk pengembangan UI, pengujian, dan dokumentasi. Storybook bersifat open source dan gratis.

Cara Install

cara install storybook cukup mudah yakni hanya menggunakan command ini :

npx storybook@latest init

Setelah menjalankan command tersebut maka otomatis akan setup dan install package yang dibutuhkan oleh storybook.

Membuat stories

Stories menangkap status yang dirender dari sebuah komponen UI. Stories tersebut adalah sebuah objek dengan anotasi yang menggambarkan perilaku dan tampilan komponen tersebut berdasarkan serangkaian argumen.

Storybook menggunakan istilah umum argumen (disingkat args) ketika membicarakan tentang props pada React, props pada Vue, @Input pada Angular, dan konsep serupa lainnya.

1. Import React dan Komponen Anda

import React from 'react';
import { Button } from './Button'; // pastikan path ini sesuai dengan lokasi komponen 

2. Export Default

export default {
  title: 'Example/Button', // Judul ini akan muncul di sidebar Storybook
  component: Button, // Komponen yang akan diceritakan
};

3. Template Function

Buat sebuah fungsi template yang akan digunakan untuk membuat instance dari komponen dengan berbagai argumen (args). Fungsi ini menerima args dan meneruskannya ke komponen.

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

4. Membuat Stories

Buat beberapa stories dengan menggunakan template tersebut. Kita dapat membuat berbagai varian dari komponen dengan berbagai props yang berbeda.

export const Primary = Template.bind({});
Primary.args = {
  primary: true, // Ini adalah props yang diteruskan ke komponen
  label: 'Button', 
};

export const Secondary = Template.bind({});
Secondary.args = {
  label: 'Button',
};

export const Large = Template.bind({});
Large.args = {
  size: 'large',
  label: 'Button',
};

export const Small = Template.bind({});
Small.args = {
  size: 'small',
  label: 'Button',
};
  • Template.bind({}): Ini adalah cara untuk membuat salinan dari fungsi template. Ini memungkinkan Anda untuk membuat beberapa instance dari template dengan argumen yang berbeda.
  • Primary.args: Ini adalah objek yang berisi argumen (props) yang akan diteruskan ke komponen.

Kesimpulan

Storybook memberikan berbagai manfaat signifikan untuk proses pengembangan UI. Alat ini memungkinkan pengembang membangun dan menguji komponen UI secara terpisah dari aplikasi utama, mempermudah identifikasi dan penyelesaian bug. Storybook menyediakan dokumentasi visual yang interaktif, membuat tim pengembang dan desainer lebih mudah memahami dan menggunakan komponen yang tersedia. Dengan Storybook, pengembang dapat dengan mudah membuat dan menguji berbagai state dan edge case dari komponen, memastikan komponen berfungsi dengan baik dalam berbagai situasi. Dokumentasi dan komponen yang interaktif meningkatkan kolaborasi antara tim pengembang, desainer, dan pemangku kepentingan lainnya dengan menyediakan sumber referensi yang jelas dan mudah diakses. Alat ini memfasilitasi iterasi cepat dengan feedback langsung, mempercepat proses pengembangan dan perbaikan UI. Sebagai alat open source, Storybook bebas digunakan dan terus diperbarui oleh komunitas, memastikan alat ini selalu up-to-date dengan teknologi dan praktik terbaik terbaru. Dengan semua manfaat ini, Storybook menjadi alat yang sangat berharga untuk meningkatkan efisiensi dan kualitas pengembangan UI.

Referensi