gpt4 book ai didi

vue.js - Storybook 在 Show Code 中显示所有内容

转载 作者:行者123 更新时间:2023-12-04 02:27:22 25 4
gpt4 key购买 nike

我正在使用 Vue 3 + Storybook。一切正常,除了当我单击“显示代码”时,它只显示所有内容而不仅仅是模板..我做错了什么?
enter image description here
这是我的故事:

import Button from './Button.vue';

export default {
title: 'Components/Button',
component: Button
};

const Template = (args) => ({
// Components used in your story `template` are defined in the `components` object
components: { Button },
// The story's `args` need to be mapped into the template through the `setup()` method
setup() {
return { args };
},
// And then the `args` are bound to your component with `v-bind="args"`
template: '<my-button v-bind="args" />',
});

export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};

export const Secondary = Template.bind({});
Secondary.args = {
label: 'Button',
};

export const Large = Template.bind({});
Large.args = {
size: 'large',
label: 'Button',
};

export const Small = Template.bind({});
Small.args = {
size: 'small',
label: 'Button',
};

最佳答案

正如您从下面的屏幕截图中看到的那样,它确实有效,正如您在 Vue 2 中所期望的那样。
Vue 2 storybook
但是,我在使用 Vue 3 时得到的结果与您相同。
Vue 3 storybook

简单的答案
它尚未在 Vue 3 中实现。
正如您在 source code 中看到的那样Storybook 的文档附加组件,
Vue 3 框架有一个单独的实现。然而,Vue 3 实现缺少源代码装饰器,它生成源代码的渲染版本。
修补程序
如果您不想等到 Storybook 团队发布更新,您可以使用以下代码根据您的参数生成您自己的文档。请记住,这并不涵盖所有用例。

const stringifyArguments = (key, value) => {
switch (typeof value) {
case 'string':
return `${key}="${value}"`;
case 'boolean':
return value ? key : '';
default:
return `:${key}="${value}"`;
}
};

const generateSource = (templateSource, args) => {
const stringifiedArguments = Object.keys(args)
.map((key) => stringifyArguments(key, args[key]))
.join(' ');

return templateSource.replace('v-bind="args"', stringifiedArguments);
};

const template = '<my-button v-bind="args" />';

const Template = (args) => ({
components: { MyButton },
setup() {
return { args };
},
template,
});

export const Primary = Template.bind({});
Primary.args = {
primary: true,
label: 'Button',
};

Primary.parameters = {
docs: {
source: { code: generateSource(template, Primary.args) },
},
};
另一个临时解决方案是手动编写源代码,而不是自动生成它。
Primary.parameters = {
docs: {
source: { code: '<my-button primary label="Button" />' },
},
};

关于vue.js - Storybook 在 Show Code 中显示所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66529241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com