react has a component library; the component library is a design plan that organizes components together to build through multi-dimensional combinations; component design is through the disassembly, induction, and reorganization of elements in functions and visual expressions, and Based on the purpose of being reusable, standardized components are formed. Commonly used component libraries in react include Bulma, AntDesign, Bootstrap, etc.
The operating environment of this tutorial: Windows 10 system, react17.0.1 version, Dell G3 computer.
Component design is to form standardized components by disassembling, summarizing, and reorganizing elements in functions and visual expressions, and based on the purpose of being reusable. Multi-dimensional combinations are used to build the entire design plan, and these components are organized together to form a component library.
Commonly used react component library:
Ant Design
Project link: Ant Design
Bundle size (from BundlePhobia): 1.2mB after minification, 349.2kB after gzip compression, reduced by tree shaking.
Pros:
AntDesign comes with extensive support documentation, has a community, including one with pre-made templates A separate project (AntDesignPro);
can be used to quickly design the UI library of backend/internal applications.
Cons:
Lack of accessibility;
Size Large, expected to have a large impact on performance;
Pollutes your CSS (expect to add !important to prevent it from styling your non-Ant components).
Bootstrap
In fact, I mainly regard Bootstrap as a UI library. It won’t win you any design awards, but it can be used to complete some edge projects and minimum viable products.
But it depends on what you want to use it for. If you're new to React, it's a great library to get started with. For more experienced developers, they might look into styled-components / Emotion.
There are two popular libraries with React bindings for Bootstrap, I personally only use Reactstrap.
Project link: React Bootstrap
Bundle size (from BundlePhobia): 111kB after minification, 34.4kB after gzip compression, via tree shaking Reduced size
Project link: Reactstrap
Bundle size (from BundlePhobia): 152.1kB minified, minified 39.4kB after gzip compression, reduce the size by shaking the tree
##Advantages:
Disadvantages:
It is very close to the v1 version, so please be aware of breaking changes after v0.8.0.
Material UI
MaterialUI is one of those libraries that I love to hate. It's helped me get through some very stressful project deadlines in the past, but in the end I always got it out of the way as quickly as possible.
In the past, you could only customize MaterialUI's styles by writing JSS, but thankfully you can now override styles using styled-components and Emotion.
Project link: Material UI
Bundle size (from BundlePhobia): 325.7kB minified, gizp compressed 92kB, reduced by tree shaking Volume
Advantages:
Complete documentation
Icon library Very big
Easy to use (at the beginning)
Disadvantages:
Difficult and painful to customize, but necessary (to improve visual effects);
Performance: Too many DOM nodes will be rendered;
Your app will look like a Google product (for some, this may represent a professional look).
Semantic UI
Advantages:
# #Potential uncertainty of open source projects.
https://github.com/fomantic/Fomantic-UI
ReachUI is a low-level component library that allows developers to build accessible React components into their design systems.
There is no package size available because each component is exported individually as its own npm package.
Reakit
Reakit is another low-level component library. Technically it's a UI library, but it doesn't come with CSS. So you still need to find a styling solution.
Bundle size (from BundlePhobia): 119.9kB minified, 32.1kB gzip compressed, reduced by tree shaking.
Rebass
Project link: Rebass
Package size (from BundlePhobia): 43kB after minification, gizp compression 14.4kB, reduce the size by tree shaking .
[Related recommendations:
javascript video tutorialThe above is the detailed content of Does react have a component library?. For more information, please follow other related articles on the PHP Chinese website!