Storybook for Vue

  1. 介绍:

    storybook是一个可视化组件展现平台,该工具可让开发者独立的创立能够交互展现的UI组件,能有组织和高效地构建UI组件。

    官网

  2. 装置:

      npm install @storybook/vue -S 
  3. 批改package.json, 配置一个scripts。

    {  "scripts": { "storybook": "start-storybook -p 6006" // 指定运行在6006端口  }}
  4. 批改目录构造:

    • 在我的项目根目录下新建一个.storybook文件夹,在外部新建一个main.js文件

        |---- .storybook    |-- main.js,  ....  |---- src  |---- package.json
    • 在main.js中写入内容:

        module.exports = {    stories: ["../src/stories/**/*.stories.js", "../src/stories/*.stories.js"], // 对src下的XXX.stories.js进行注册  }
    • 在src文件夹下新建一个stories,新建对应的XXX.stories.js, 一个文件夹代表一个大目录,可再建设小目录。

      // test.stories.jsimport Test from '../components/Test'export default { title: '测试组件' } // 大目录的名称export const toStorybook = () => ({  components: { Test }, // 注册组件  template: '<Test/>' // 调用})toStorybook.story = {  name: 'Test' // 组件目录名}
  5. 运行:

       npm run storybook

    这时不出意外的话,storybook已顺利运行,界面呈现。

  6. addon-knobs插件 - 动静交互展现组件属性

    • 装置:

      npm install @storybook/addon-knobs -S
    • 引入:

      在main.js中的addons引入该插件

        module.exports = {    stories: ["../src/stories/**/*.stories.js", "../src/stories/*.stories.js"],    addons: ['@storybook/addon-knobs/register']  }
    • 应用:

      在test.stories.js中配置应用:
      import { withKnobs, text, color, boolean } from '@storybook/addon-knobs'

      import ...  export default { title: '测试组件', decorators: [withKnobs] }...
    • 组件调用:

      export const toStorybook = () => ({  components: { Test }, // 注册组件  template: '<Test :text="text" :color="color" :show="show"/>' // 调用  props: {    text: {      default: text('文字', 'Hello Storybook')    },    color: {      default: color('色彩', '#000')    },    show: {      default: boolean('是否显示', true)    }  }})
    • 成果:此时界面下方或者右方会呈现一个面板,可在其中动静配置批改相干属性,实时预览。
  7. addon-actions插件:显示事件触发成果以及查看传值。

    • 装置:

        npm install @storybook/addon-actions -S
    • 引入:

      在main.js中的addons引入该插件:

      ...addons:[ '@storybook/addon-knobs/register', '@storybook/addon-actions/register' ]...
    • 应用:

      在XXX.stories.js中引入

      import { action } from '@storybook/addon-actions'...export const toStorybook = () => ({  components: { Test }, // 注册组件  template: '<Test @showClick="showClick"/>', // 调用  methods: {    showClick: action('showClick')  }  ...})...
    • 成果:此时在界面下方或者上方将呈现一个actions面板,在showClick事件触发时,actions面板内将打印,并显示传值内容。