Vue Storybook 动态故事

Posted

技术标签:

【中文标题】Vue Storybook 动态故事【英文标题】:Vue Storybook dynamic story 【发布时间】:2021-01-23 14:45:08 【问题描述】:

我正在使用 Storybook 列出项目中的所有图标。图标列表用于下拉菜单。我需要加载 SVG 图标以解析到 <van-icon /> 组件中。

我下面的代码正确加载了一个图标,但问题是当您更改下拉列表中的值时组件没有更新。

对于我在这里尝试的内容是否有更好的解决方案?似乎故事书文档中没有任何内容可用于创建动态故事书组件。也许我可以使用加载图标的 createcomponent 手动创建一个组件?

import Icons from './index';

export default 
  title: 'Components/Icon',
  argTypes: 
    size: 
      control:  type: 'range', min: 10, max: 500 ,
      defaultValue: 50,
    ,
    name: 
      control:  type: 'select', options: Icons ,
      defaultValue: Icons[0],
    ,
  ,
;

const Template = (args,  argTypes ) => (
  props: Object.keys(argTypes),
  template: `<van-icon v-bind="$props" :name="getIcon()" />`,
  methods: 
    getIcon() 
      return args.name ? require(`../../assets/icons/$args.name.svg`) : '';
    ,
  ,
);

export const Default = Template.bind();

【问题讨论】:

【参考方案1】:

我遇到了类似的问题,我没有正确绑定道具。我在这里发布我的代码可能会有所帮助:

import DragIconComponent from "../components/DragIcon.vue";

const argTypes = 
  backgroundColor:  control: "color" ,
;

export default 
  title: "Drag Icon",
  argTypes,
;

export const DragIcon = () => (
  components:  DragIconComponent ,
  props:  ...argTypes ,
  template: `<div class="some-class">
      <DragIconComponent :mainColor="backgroundColor" />
    </div>`,
);

【讨论】:

以上是关于Vue Storybook 动态故事的主要内容,如果未能解决你的问题,请参考以下文章

无法读取未定义的属性“移动”-Vue/Vuetify/Storybook

如何在 vue 的故事书中显示材料设计图标

在 Storybook Vue 中导入节点模块

故事书找不到模块'@storybook/angular'[重复]

为啥 vue-loader 不能与故事书一起使用?

Storybook 构建版本的故事在使用 rewiremock 时崩溃