
よっしー
こんにちは。よっしーです(^^)
今日は、SvelteKitのリファレンスについて解説して います。
背景
SvelteKitのリファレンスについて調査する機会がありましたので、その時の内容を備忘として記事に残しました。
CLIツール(sv)
コマンドラインインターフェース(CLI)であるsvは、Svelteアプリケーションの作成と保守のためのツールキットです。
Storybookとは
Storybookはフロントエンドコンポーネントのワークショップです。
使用方法
npx sv add storybook
導入されるもの
- 他のアドオンと同じ便利なsvCLIからnpx storybook initが自動的に実行されます
- SvelteKitまたはSvelteとVite用のStorybookが、デフォルト設定とともに提供され、多くのSvelteKitモジュールの簡単なモック、自動リンク処理などが含まれます
解説
Storybookは、UIコンポーネントを独立して開発・テスト・ドキュメント化するためのツールです。コンポーネントライブラリを構築する際や、大規模なアプリケーションでコンポーネントを管理する際に非常に役立ちます。
基本的な使用例
- インストール後の起動
# Storybookを起動
npm run storybook
- コンポーネントのストーリー作成例
例えば、Button.svelteというコンポーネントがある場合:
<!-- Button.svelte -->
<script>
  export let primary = false;
  export let label = 'Button';
</script>
<button class:primary>
  {label}
</button>
<style>
  button {
    border: 1px solid #ccc;
    padding: 0.5rem 1rem;
    border-radius: 4px;
  }
  .primary {
    background-color: #4c88e8;
    color: white;
  }
</style>
このコンポーネントのストーリーを以下のように作成します:
// Button.stories.js
import Button from './Button.svelte';
export default {
  title: 'Components/Button',
  component: Button,
  argTypes: {
    primary: { control: 'boolean' },
    label: { control: 'text' }
  }
};
const Template = (args) => ({
  Component: Button,
  props: args
});
export const Default = Template.bind({});
Default.args = {
  primary: false,
  label: '通常ボタン'
};
export const Primary = Template.bind({});
Primary.args = {
  primary: true,
  label: 'プライマリボタン'
};
- SvelteKitのページコンポーネントのストーリー
SvelteKitのページをStorybookでテストする例:
// Page.stories.js
import Page from '../routes/about/+page.svelte';
export default {
  title: 'Pages/About',
  component: Page
};
export const Default = {};
Storybookの利点
- コンポーネントの分離開発: 各コンポーネントを独立して開発・テストできます
- インタラクティブなドキュメント: 開発者やデザイナーが参照できるコンポーネントカタログになります
- さまざまな状態のテスト: 異なるpropsや状態でコンポーネントを簡単に確認できます
- アクセシビリティテスト: アドオンを使ってアクセシビリティの問題を検出できます
- ビジュアルリグレッションテスト: 変更による視覚的な違いを検出できます
npx sv add storybookコマンドを実行することで、Svelteプロジェクトに適切な設定が自動的に追加され、すぐにStorybookを使い始めることができます。
おわりに
今日は、 SvelteKitのリファレンスについて解説しました。

よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
 
  
  
  
  


コメント