概要
- 今回はVue.js+Storybookの
addon-actions
を使用したサンプルです。
addon-actions
は Vue.jsのemit時の動作をStorybook上で確認できるようになります。
github.com
- Vue.jsでのStorybookの設定については以下の記事を参照ください。
kakkoyakakko2.hatenablog.com
実行環境
使用ライブラリ
- 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の確認が出来ます。
github.com