(Vue 版本 - 2,Vuetify 和 Storybook - 最新)
考虑以下简单的按钮组件:
<template>
<v-btn round
color="primary">
<slot></slot>
</v-btn>
</template>
<script>
export default {
name: "test-button",
}
</script>
在 App 组件文件中,它是这样调用的:
<v-app>
<v-layout column justify-center>
<v-layout row justify-center align-center>
<test-button @click="testBtnClicked">
Click It
</test-button>
</v-layout>
</v-layout>
</v-app>
Vuetify 设置在 main.js 中如下所示:
import Vue from 'vue';
import 'vuetify/dist/vuetify.min.css';
import Vuetify from "vuetify";
import colors from 'vuetify/es5/util/colors';
Vue.use(Vuetify, {
theme: {
primary: colors.indigo.base,
info: colors.blue.lighten2,
accent: colors.green.lighten1,
error: colors.red.darken2
}
});
到目前为止,一切都很好 - 我在框架中间有一个漂亮的靛蓝按钮,这是我所期望的。
现在,在 Storybook 配置中,我使用与 main.js 中相同的行来设置 Vuetify,我的 Storybook 文件如下所示:
import { storiesOf } from "@storybook/vue";
import TestButton from "./TestButton.vue";
storiesOf("TestButton", module)
.add("button template", () => ({
template: '<test-button :rounded="true">round</test-button>',
components: {TestButton}
}))
这会在 Storybook 中呈现按钮,但不会发生主题设置,也就是说:按钮不是靛蓝,而是白色。Vuetify 的其余属性似乎还不错——它看起来像一个带有白色文本的 Vuetify 圆形按钮。
我不确定这是 Vuetify 问题、Vue 问题还是 Storybook 问题(或者我的用户错误问题)。如果有人这样做,我将不胜感激。
这是我的 webpack.config.js(在 .storybook 中):
module.exports = (baseConfig, env, defaultConfig) => {
defaultConfig.plugins.push(new VueLoaderPlugin());
return defaultConfig;
};