Мне нравится создавать общие компоненты для приложения, которые используют компоненты библиотеки под капотом. Остальная часть моего приложения использует эти общие компоненты без каких-либо знаний о компоненте внешней библиотеки. Затем я могу использовать свой общий компонент для создания интерфейса, который мое приложение может использовать для управления его внешним видом или поведением в различных состояниях.
Например, давайте представим, что ваша <MyComponent>
- кнопка, поступающая из библиотеки компонентов , В этом примере давайте представим, что в вашем приложении есть три варианта кнопок, которые я назову «первичными», «вторичными» и «по умолчанию».
Цель состоит в том, чтобы в вашем приложении можно было импортировать свое пользовательское Button
компонента, и используйте его следующим образом:
<Button variant="primary" arbitraryProp={data}>Button Text</Button>
И variant="primary"
покрасит / придаст ему особый вид.
Один из способов построить компонент Button
для обработать это будет:
import ComponentLibraryButton from "component-library";
import React from "react";
function Button({ variant, ...rest }) {
const styles =
variant === "primary"
? { color: "purple", background: "gold" }
: variant === "secondary"
? { color: "green", background: "blue" }
: { color: "black", background: "gray" };
return <ComponentLibraryButton {...rest} styles={styles} />;
}
Мне нравится создавать такой слой, который расположен между библиотеками компонентов и остальной частью моего приложения. Это позволяет легко создавать пользовательский элемент управления, подобный этому, а также заменять новую библиотеку компонентов в будущем без необходимости изменения всех файлов, использующих компоненты.