Heim > Fragen und Antworten > Hauptteil
P粉0345716232023-08-25 09:28:28
不建议使用这种方式编写 Tailwind CSS 类 。甚至 JIT 模式也不支持,引用一下Tailwind CSS 文档:“Tailwind 不包含任何类型的客户端运行时,因此类名需要在构建时静态提取,并且不能依赖于在客户”
P粉5305192342023-08-25 00:45:37
所以在发现这种工作方式不被推荐并且JIT不支持它之后(感谢慷慨的评论者)。我已将方法更改为更加基于“配置”的方法。
基本上,我使用不同 props 的基本配置定义一个 const 并将它们应用于组件。这需要更多的维护工作,但它可以完成工作。
这是一个配置示例。 (目前无需打字)并进行一些更好的重构,但您会明白的。
const buttonConfig = {
// Colors
primary: {
bgColor: 'bg-primary-500',
color: 'text-white',
outline:
'border-primary-500 text-primary-500 bg-opacity-0 hover:bg-opacity-10',
},
secondary: {
bgColor: 'bg-secondary-500',
color: 'text-white',
outline:
'border-secondary-500 text-secondary-500 bg-opacity-0 hover:bg-opacity-10',
},
// Sizes
small: 'px-3 py-2',
medium: 'px-4 py-2',
large: 'px-5 py-2',
};
然后我就这样应用样式:
<motion.button whileTap={{ scale: 0.98 }} className={` rounded-lg font-bold transition-all duration-100 border-2 focus:outline-none ${buttonConfig[size]} ${outlined && buttonConfig[color].outline} ${buttonConfig[color].bgColor} ${buttonConfig[color].color}`} onClick={onClick} type="button" tabIndex={0} > {children} </motion.button>