조건부 Tailwind 클래스를 작성하는 보다 세련된 방법
5429 단어 reacttailwindcss
className={clsx(
'rounded px-2 py-1',
variant == 'contained' && 'bg-blue-500 text-white',
variant == 'outlined' && 'border border-blue-500 text-blue-500'
)}
이것을 선호하십시오:
className={clsx(
'rounded px-2 py-1',
variantStyle[variant], className
)}
전체 구현:
import clsx from 'clsx'
import { ButtonHTMLAttributes, FC } from 'react'
type Variants = 'outlined' | 'contained'
type ButtonProps = {
variant: Variants
} & ButtonHTMLAttributes<HTMLButtonElement>
const variantStyle: { [key in Variants]: string } = {
contained: 'bg-blue-500 text-white',
outlined: 'border border-blue-500 text-blue-500',
}
const Button: FC<ButtonProps> = (props) => {
const { children, variant, className, ...rest } = props
return (
<button
className={clsx('rounded px-2 py-1', variantStyle[variant], className)}
{...rest}
>
{children}
</button>
)
}
export default Button
Reference
이 문제에 관하여(조건부 Tailwind 클래스를 작성하는 보다 세련된 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gabrielmlinassi/a-more-stylish-way-to-write-conditional-tailwind-classes-5ae6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)