일반적으로 사용되는 React 컴포넌트 라이브러리 가이드
본문
GitHub에는 말 그대로 수백 개의 리포지토리가 있으며 모두 React 생태계에 기여하기 위한 것입니다.
초보자를 위한 훌륭한 상태의 이면은 바로 React 여정을 시작하는 곳입니다. 저자는 구성 요소 라이브러리 공간의 풍경에 대한 정보에 입각 한 경험 있는 의견을 제공합니다.
https://maxrozen.com/guide-to-component-ui-libraries-react/
Ant Design
프로젝트 링크 : Ant Design
번들 크기 (BundlePhobia에서) : 1.2mB 축소, 349.2kB 축소 + gzip, 트리 쉐이킹 사용시 감소
Pros:
- Ant Design에는 사전 제작 된 템플릿이 있는 별도의 프로젝트 (Ant Design Pro)를 포함하여 엄청난 양의 지원 문서, 커뮤니티가 함께 제공됩니다.
- 백 오피스 / 내부 앱 디자인으로 빠르게 표시하는 데 사용하는 UI 라이브러리의 종류
Cons:
- 접근성이 부족합니다
- 거대합니다. 사용할 때 상당한 성능 영향을 기대하십시오.
- CSS를 오염시킵니다 (Ant가 아닌 구성 요소의 스타일을 방지하기 위해 !important 추가 예상)
Bootstrap
나는 실제로 Bootstrap을 UI 라이브러리로 상대적으로 높게 평가합니다. 디자인 상을 받을 수는 없지만 사이드 프로젝트 및 최소 실행 가능한 제품에 대한 작업을 수행합니다.
그래도 사용하려는 용도에 따라 다릅니다. React를 처음 사용하는 경우 시작하는 데 사용할 수 있는 훌륭한 라이브러리입니다. 경험이 많은 개발자라면 스타일 구성 요소 / 감정을 살펴보고 싶을 것입니다.
Bootstrap 용 React 바인딩이 있는 두 개의 인기 있는 라이브러리가 있습니다. 저는 개인적으로 Reactstrap 만 사용했습니다.
프로젝트 링크 :
- React Bootstrap
번들 크기 (BundlePhobia에서) : 축소 된 111kB, 축소 된 34.4kB + gzip, 트리 쉐이킹 사용시 감소 - Reactstrap
번들 크기 (BundlePhobia에서) : 축소 된 152.1kB, 축소 된 39.4kB + gzip, 트리 쉐이킹 사용시 감소
Pros:
- React 바인딩과 함께 알고 있고 사랑하는 부트 스트랩 라이브러리
- CSS-in-JS를 통해 쉽게 사용자 정의
- 광범위하게 사용되어 버그 / 문제가 걱정되지 않을 정도로 충분히 오래되었습니다.
- 빠른 시작
- React에서 완전히 다시 구현되었으므로 jQuery 종속성 없음
Cons:
- 부트 스트랩 : 사이트를 맞춤 설정하지 않으면 다른 모든 사이트처럼 보입니다.
Bulma
Bulma는 여기에 제시된 대부분의 라이브러리와 다릅니다. 순전히 CSS 프레임워크이고 JS가 필요하지 않기 때문입니다. Bulma의 클래스를 직접 사용하거나 react-bulma-components와 같은 래퍼 라이브러리를 사용하도록 선택할 수 있습니다.
프로젝트 링크 :
- Bulma
- react-bulma-components
번들 크기 (BundlePhobia에서) : 179kB 축소, 20.1kB 축소 + gzip
Pros:
- 부트 스트랩 모양과 느낌이 없습니다.
- 무언가를 빠르게 시작하고 실행하는 데 좋습니다.
- 최신 기능 (Flexbox / Grid under the hood)
Cons:
- 접근성 : 일부가 있지만 다른 라이브러리만큼 강력하게 WCAG 지침을 따르지 않습니다.
Chakra UI
프로젝트 링크 : Chakra UI
- 번들 크기 (BundlePhobia에서) : 326.2kB 축소, 101.2kB 축소 + gzip, 트리 쉐이킹 사용시 더 적음
Pros:
- 접근성 : WAI-ARIA 지침을 따르고 구성 요소는 aria 태그를 사용합니다.
- 지원을 위한 Discord 서버
- 쉽게 사용자 정의 가능 (테마 지원 포함)
- 고도로 모듈화 되어 있으므로 트리 쉐이킹은 실제로 사용하지 않는 코드를 제거합니다.
Cons:
- 아주 새로운.
Notes:
- v1 릴리스에 매우 가깝기 때문에 v0.8.0의 주요 변경 사항에 유의하십시오.
Material UI
머티리얼 UI는 제가 싫어하는 라이브러리 중 하나입니다. 과거에는 고객에게 매우 촉박 한 기한을 통과하는 데 도움이 되었지만, 가능한 한 빨리 다른 거의 모든 것을 선호하여 항상 이를 제거합니다.
과거에는 JSS를 작성해야만 머티리얼 UI의 스타일을 사용자 지정할 수 있었지만 이제는 스타일 구성 요소와 감정으로 스타일을 재정의 할 수 있습니다.
프로젝트 링크 : 머티리얼 UI
- 번들 크기 (BundlePhobia에서) : 325.7kB 축소, 92kB 축소 + gzip, 트리 쉐이킹 사용시 더 적음
Pros:
- 포괄적 인 문서
- 아이콘 라이브러리는 방대하다
- 사용이 간편함 (처음에는)
Cons:
- 사용자 정의가 어렵고 고통스럽지만 필요합니다 (시각적 개선을 위해).
- 성능 : 과도한 DOM 노드를 렌더링 하는 것으로 알려져 있음
- 앱이 Google에서 만든 것처럼 보일 것입니다 (일부 사용자에게는 전문가가 될 수 있음).
Semantic UI
프로젝트 링크 :
- Semantic UI
- Semantic-UI-React
번들 크기 (BundlePhobia에서) : 축소 된 300.8kB, 축소 된 80.9kB + gzip, 트리 쉐이킹 사용시 감소
Pros
- 컴포저 블 (구성 요소 전달을 위해 as prop 사용)
- 쉽게 사용자 정의 가능
- 유용한 문서
- 높은 프로필 사용자 (Netflix 내부, Amazon 게시)
- TypeScript 지원
Cons
- 오픈 소스 프로젝트에 대한 잠재적 불확실성.
문제보기 : https://github.com/Semantic-Org/Semantic-UI/issues/6109 https://github.com/Semantic-Org/Semantic-UI/issues/6413
커뮤니티에서 실행되는 포크가 있습니다 : https://github.com/fomantic/Fomantic-UI
Honourable mentions
Reach UI
Reach UI는 개발자가 디자인 시스템에서 액세스 가능한 React 구성 요소를 빌드 할 수 있도록 하는 데 중점을 둔 저수준 구성 요소 라이브러리입니다.
각 구성 요소가 자체 npm 패키지로 개별적으로 내보내지기 때문에 사용할 수 있는 번들 크기가 없습니다.
Reakit
Reakit은 또 다른 저수준 구성 요소 라이브러리입니다. 기술적으로는 UI 라이브러리이지만 CSS와 함께 제공되지 않습니다. 따라서 여전히 스타일링 솔루션을 찾아야 합니다.
- 번들 크기 (BundlePhobia에서) : 119.9kB 축소, 32.1kB 축소 + gzip, 트리 쉐이킹 사용시 더 적음
Rebass
Rebass는 얼마 동안 내 레이더에 있었습니다. 테마와 함께 제공되지 않지만 쉽게 테마를 지정할 수 있는 매우 강력한 구성 요소 라이브러리입니다. 이것이 실제로 어떻게 작동하는지에 대한 예는 데모를 참조하십시오.
프로젝트 링크 : Rebass
- 번들 크기 (BundlePhobia에서) : 축소 된 43kB, 축소 된 14.4kB + gzip, 트리 쉐이킹 사용시 감소
Notes
이 목록을 만들 때 기업 디자인 시스템을 피하려고 시도했지만 일부 (Material UI)가 널리 채택되어 이 목록이 없으면 불완전 할 것입니다.
또한 Styled-Components 및 Emotion과 같은 CSS-in-JS와 Tailwind와 같은 유틸리티 CSS 시스템은 명시 적으로 "React Component 라이브러리"가 아니라 구성 요소를 만드는 데 사용되는 도구이므로 의도적으로 제외했습니다.
- 이전글React useEffect : 모든 개발자가 알아야 할 4 가지 팁 20.08.27
- 다음글Amazon Web Services로 React 애플리케이션 구축 20.08.20