開発覚書はてな版

個人的な開発関連の備忘録

【Vue.js】Vue.jsでStorybookを使ってみた - addon-actions編

概要

  • 今回はVue.js+Storybookのaddon-actionsを使用したサンプルです。
  • addon-actions は Vue.jsのemit時の動作をStorybook上で確認できるようになります。

github.com

  • Vue.jsでのStorybookの設定については以下の記事を参照ください。

kakkoyakakko2.hatenablog.com

実行環境

  • Node.js - 12.x

使用ライブラリ

  • vue - 2.6.x
  • @storybook/vue - 5.3.x
  • @storybook/addon-actions - 5.3.x

サンプルソース

src/components/MyButton.vue

<template>
  <button @click="onClick">{{ label }}</button>
</template>

<script>
export default {
  name: 'MyButton',
  props: {
    label: {
      type: String,
      default: 'button',
    },
  },
  methods: {
    onClick($event) {
      this.$emit('click', $event);
    },
  },
};
</script>

<style scoped>
button {
  background: yellow;
}
</style>

src/components/my-button.stories.js

  • methods に template で指定したメソッドを定義します。
  • 上記で定義したメソッド内にaction を定義します。
import { action } from '@storybook/addon-actions';
import MyButton from './MyButton.vue';

export default {
  title: 'MyButton',
};

export const Basic = () => ({
  components: { MyButton },
  template: '<my-button @click="onClick" />',
  methods: {
    onClick: action('click'),
  },
});

.storybook/main.js

  • addons@storybook/addon-actions を追加します。
module.exports = {
  stories: ['../src/**/*.stories.[tj]s'],
  addons: [
    '@storybook/addon-actions',
  ]
};

実行

  • start-storybook -p 8080 で実行できます。(-p 8080 はポート番号)
  • http://localhost:8080/ にブラウザからアクセスすることで、Storybookの確認が出来ます。

f:id:kakkoya:20200610213142p:plain

サンプルソース一式

github.com