首页 >web前端 >js教程 >Vue Tailwind 和动态类

Vue Tailwind 和动态类

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-08 16:23:30570浏览

Vue   Tailwind and Dynamic Classes

我最近在做的一个项目使用了 Vite、Vue 和 Tailwind。

使用自定义颜色一段时间后,我遇到了一些困惑。

在模板中添加和使用自定义颜色不是问题 - 使用 Tailwind 文档使该过程非常清晰

// tailwind.config.js
module.exports = {
    theme: {
        colors: {
          'custom-green': {
              50: '#9bd1b2',
              ...
              700: '#284735'
          },
        }
    }
}

我的问题是在 Vue 模板中使用带有动态和静态 css 类的自定义颜色时。

使用 npm run dev 或 vite 运行项目时,bg-custom-green-50 或 text-custom-green-50 不起作用,并且从未出现在 css 文件中。

我的理解是,如果你的完整 css 类名不存在于模板中,则 tailwind 不会添加它或在 css 文件中生成它。

假设 css 类:text-custom-green-50 或 bg-custom-green-50 未在项目中的其他任何地方使用

下面的例子将不起作用

<template>
    <h3 :class="['font-bold', colorClass]">{{ heading }}</h3>
</template>
<script type="text/javascript">
    const colorClass = ref('')

    // color being set somewhere else in the component logic
    colorClass.value = 'text-custom-green-50'
</script>

下面的例子将起作用

<template>
    <h3 :class="['font-bold', colorClass]">{{ heading }}</h3>
    <p class="text-custom-green">Green text</p>
</template>
<script type="text/javascript">
    const colorClass = ref('')

    // color being set somewhere else in the component logic
    colorClass.value = 'text-custom-green-50'
</script>

两个示例之间的区别是 text-custom-green css 类添加到模板中,因此 tailwind 会将其添加到生成的 css 文件中。

要克服这个问题,您可以将任何自定义颜色或 tailwind 类添加到 tailwind.config.js 文件中的安全列表中。

// tailwind.config.js
module.exports = {
    safelist: [
        'text-custom-green-50',
        'bg-custom-green-50'
    ]
}

即使这些颜色没有直接在模板中使用,而是在另一点动态添加,它们也将可用

希望其他人觉得这有帮助。

以上是Vue Tailwind 和动态类的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn