PHP前端开发

Vue + Tailwind 和动态类

百变鹏仔 3个月前 (10-13) #JavaScript
文章标签 动态

我最近在做的一个项目使用了 vite、vue 和 tailwind。

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

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

// tailwind.config.jsmodule.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.jsmodule.exports = {    safelist: [        'text-custom-green-50',        'bg-custom-green-50'    ]}

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

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

最新文章