Например, у меня есть компонент Button и есть типы: primary, secondary, withIcon, small, search.
Вижу два пути:
1. Через пропсы: <Button primary />, <Button small />
2. Создать отдельную константу для каждого типа: <ButtonPrimary /> итд.
Но, например, тип witchIcon 1-м способом лучше не реализовывать, кажется.
Использую styled-components и atomic-design.
bem-react или-или reshadow
В случае с кнопкой я бы делал: <Button variant={'primary' || 'secondary' || 'default'} color={'red'} icon={<Icon/>} />
https://github.com/ant-design/ant-design/blob/master/components/button/button.tsx#L68
Посмотри, как реализованы популярные библиотеки компонентов. Зачем набивать шишки, если их кто-то уже набил за тебя?
Обсуждают сегодня