vue.js - 在可重用的 VueJS 组件中覆盖 Tailwind CSS 类

标签 vue.js vuejs2 vue-component tailwind-css

我使用 TailwindCSS 创建了一个 VueJS 按钮组件。我的目标是为该按钮组件提供一些基本样式(使用 tailwindcss 类),并在需要时选择覆盖它们(再次,使用 tailwind css 类)。
例如,这里是 Button 的简化版本。零件:

// Button.vue

<template>
  <button class="bg-green-500 text-white py-2 px-4 rounded">
    Click Me
  </button>
</template>
这是我在另一个文件中使用该组件的示例:
// index.vue

<Button></Button>
<Button class="bg-red-600"></Button>
<Button class="bg-blue-600"></Button>
问题是这只是成功的一半。也就是说,bg-blue-600确实覆盖了 bg-green-500我在 Button.vue 中设置为默认值.但是bg-red-600 不是 覆盖背景颜色(大概是因为 bg-red-600 在 css 源代码中出现得更早。
因此,我想知道如何正确设置它?也就是说,我怎么给Button组件一些基本样式(同样,使用tailwind css 类),同时还提供使用tailwind css 类覆盖这些样式的选项。
谢谢。

最佳答案

这是因为您的组件属性 classButton不痒到 html button .为此,只需像这样将属性绑定(bind)到 child

<button v-bind="$attrs"...>
这将使您在 Button 上指定的所有属性(不是 Prop )绑定(bind)到 html 按钮。
话虽如此,我个人更喜欢使用 @apply 来制作按钮类。指令并在我的项目中重用它。

关于vue.js - 在可重用的 VueJS 组件中覆盖 Tailwind CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62529550/

相关文章:

javascript - VueJS + Firebase 的 orderBy 问题

javascript - JavaScript中如何获取URL参数?

javascript - 在 vueJs 上更新 firebase 绑定(bind)数组上的元素

modal-dialog - 如何重置 vue.js 2 中模态的输入数据?

javascript - 将数据传递给 VueJS 中的组件

javascript - Vue JS 当我点击按钮时我希望 div 滚动到 div 的底部

vue.js - 无法访问 Vue 文件脚本标签中的 CSS 变量

javascript - VueJS |根据选定的复选框或在输入字段中输入文本来过滤 API 数据

javascript - Select2 以 Vue Js 作为指令

typescript - Vue 3 Typescript 类组件 - 类型 'typeof import(.../node_modules/vue/dist/vue")' 不是构造函数类型