21 Лучшая библиотека компонентов React, которую стоит попробовать в 2021 году

Если вы работаете в сфере информационных технологий, вы должны постоянно повышать свою квалификацию независимо от того, какова ваша роль. Если вы веб-разработчик, вы должны знать, как развиваются и постоянно меняются веб-технологии. ReactJS — одна из самых популярных веб-технологий с открытым исходным кодом, используемая для разработки одностраничных приложений. Одним из факторов популярности ReactJS является обширный каталог библиотек компонентов React.

Когда дело доходит до создания современных приложений React, эти библиотеки компонентов не только экономят нам много времени и усилий, но и помогают упростить тестирование приложений React. Они содержат различные предварительно созданные компоненты, такие как наборы иконок, кнопки, формы ввода, меню, пагинация, выбор даты и времени и т.д. Используя эти библиотеки компонентов React, разработчики могут создавать умопомрачительные пользовательские интерфейсы и современные веб-дизайны для настольных, мобильных, веб- и гибридных приложений.

Что такое библиотека компонентов React?

React — это библиотека JavaScript, которая позволяет разрабатывать лучшие пользовательские интерфейсы для веб- и мобильных приложений. Она удобно интегрируется с другими фреймворками и библиотеками JavaScript и включает в себя небольшие, многократно используемые фрагменты кода, называемые компонентами. Библиотеки компонентов React не только оптимизируют процесс разработки пользовательского интерфейса, но и обеспечивают чрезвычайную гибкость благодаря своей высокой модульности.

Примечание: URL-Decode декодирует веб-адреса из ASCII в человекочитаемый формат.

Лучшие библиотеки компонентов React в 2021 году

Выбрать правильную библиотеку компонентов React для приложения может быть непросто, но не волнуйтесь, вы пришли в нужное место. Мы собрали 21 лучшую библиотеку компонентов React, которые пользуются популярностью среди разработчиков за их удобство и доступность.

Итак, давайте начнем!

1. React Bootstrap

Мы все любим Bootstrap за ту свободу, которую он дает нам в работе с отзывчивыми веб-компонентами. Но у Bootstrap есть и болевые зоны. Из-за специфических ненужных библиотек он имеет тенденцию снижать производительность веб-приложений? Предположим, вы разрабатываете веб-приложение с использованием React. Каково решение, если вы хотите включить в него некоторые любимые всеми компоненты Bootstrap?

С более чем 19,3 тыс. звезд и 3,1 тыс. форков на GitHub, React Bootstrap является одной из лучших библиотек компонентов React, которая полностью заменяет bootstrap JavaScript на React. Каждый компонент разрабатывается в стиле компонента React. Это означает, что ненужные библиотеки, такие как jQuery, больше не присутствуют. Будучи одной из самых старых библиотек, она сильно эволюционировала. Вы получите много помощи от сообщества React. Это делает React-Bootstrap отличным выбором для основы пользовательского интерфейса вашего приложения.

Установка

    npm install react-bootstrap bootstrap

Вход в полноэкранный режим Выйти из полноэкранного режима

Пример

import React, { useState } from 'react';

    import Jumbotron from 'react-bootstrap/Jumbotron';
    import Toast from 'react-bootstrap/Toast';
    import Container from 'react-bootstrap/Container';
    import Button from 'react-bootstrap/Button';

    import './App.css';

    const ExampleToast = ({ children }) => {
      const [show, toggleShow] = useState(true);

    return (
        <>
          {!show && <Button onClick={() => toggleShow(true)}>Show Toast</Button>}
          <Toast show={show} onClose={() => toggleShow(false)}>
            <Toast.Header>
              <strong className="mr-auto">React-Bootstrap Demo</strong>
            </Toast.Header>
            <Toast.Body>{children}</Toast.Body>
          </Toast>
        </>
      );
    };

    const App = () => (
      <Container className="p-3">
        <Jumbotron>
          <h1 className="header">Demonstration Of React Bootstrap</h1>
          <ExampleToast>
            Click Here!

          </ExampleToast>
        </Jumbotron>
      </Container>
    );

    export default App;

Вход в полноэкранный режим Выход из полноэкранного режима

Выход

2. Материальный пользовательский интерфейс React

Возможно, вы слышали о материальном дизайне Google. С коллекцией гладких и упрощенных элементов, библиотека поразила нас, предоставив все необходимое для создания высококачественного цифрового опыта. Что если бы вы могли получить аналогичный опыт в своем приложении React без проблем с интеграцией?

Material UI считается одной из лучших библиотек React со всеми элементами материального дизайна, которые можно легко использовать в вашем проекте React. Она имеет более 67,8 тыс. звезд и 21,6 тыс. форков на GitHub. Если вы не очень разбираетесь в дизайне, не беда. Material UI предоставляет вам коллекцию тем, которые вы можете выбрать для своего сайта. Существует обширная документация, так что вы сможете найти все, что вам нужно, когда бы вы ни застряли.

Теперь проводите живое интерактивное тестирование Material UI ваших сайтов на платформе LambdaTest.

Установка

npm install [@material](http://twitter.com/material)-ui/core
Вход в полноэкранный режим Выйти из полноэкранного режима

Пример

import React from "react";
    import ReactDOM from "react-dom";
    import Button from "[@material](http://twitter.com/material)-ui/core/Button";

    function App() {
      return (
        <Button variant="contained" color="secondary">
          REGISTER NOW
        </Button>
      );
    }

    ReactDOM.render(<App />, document.querySelector("#app"));
Войти в полноэкранный режим Выход из полноэкранного режима

Выход

3. Ant Design React

Имея более 6,2 тыс. звезд и 27,7 тыс. форков, Ant Design React является одной из лучших библиотек компонентов React, содержащей множество качественных компонентов и прототипов для создания богатых, привлекательных пользовательских интерфейсов. Она поддерживает интернационализацию для различных языков и использует Less.js для стилизации компонентов. Фреймворк Ant Design обеспечивает кастомизацию для изменения дизайна.

Среди компонентов Ant Design — кнопки, иконки, хлебные крошки, сетки, выпадающие окна и пагинация. Кроме того, в нем предусмотрена версия, дружественная к мобильным устройствам, для создания мобильных приложений.

Установка

    $ npm install antd

Вход в полноэкранный режим Выход из полноэкранного режима

Пример

import React from "react";
    import ReactDOM from "react-dom";
    import { Button, DatePicker, version } from "antd";
    import "antd/dist/antd.css";
    import "./index.css";

    ReactDOM.render(
      <div className="App">
        <h1>antd version: {version}</h1>
        <DatePicker />
        <Button type="primary" style={{ marginLeft: 8 }}>
          Primary Button
        </Button>
      </div>,
      document.getElementById("root")
    );
Войти в полноэкранный режим Выход из полноэкранного режима

4. React Router

React хорошо известен своей декларативной моделью программирования. Если вы создаете приложение с помощью React, будет здорово иметь некоторые компоненты, которые вы можете декларативно компоновать в своем приложении. React router — это коллекция таких компонентов. Предположим, вы хотите добавить несколько URL-адресов, которые можно добавить в закладки. Или, что если вам нужен композитный способ навигации в React native? У нас есть React Router для решения этой проблемы.

React Router — одна из лучших библиотек компонентов, которая позволяет разработчику легко управлять навигацией в одностраничном приложении. Мало того, библиотека также предлагает плавный переход от экрана к экрану, рендеринг на стороне сервера и яркую поддержку вложенности.

Теперь проводите живое интерактивное тестирование React Router ваших сайтов на платформе LambdaTest.

Установка

    $ npm install --save react-router

Вход в полноэкранный режим Выход из полноэкранного режима

Пример

import React from "react";
    import { render } from "react-dom";
    import { BrowserRouter as Router, Route, Link } from "react-router-dom";

    import About from "./components/About";
    import Home from "./components/Home";
    import Topics from "./components/Topics";

    const BasicExample = () =>
      <Router>
        <div>
          <ul>
            <li>
              <Link to="/">Home</Link>
            </li>
            <li>
              <Link to="/about">About</Link>
            </li>
            <li>
              <Link to="/topics">Topics</Link>
            </li>
          </ul>

    <hr />

    <Route exact path="/" component={Home} />
          <Route path="/about" component={About} />
          <Route path="/topics" component={Topics} />
        </div>
      </Router>;

    render(<BasicExample />, document.getElementById("root"));
Войти в полноэкранный режим Выход из полноэкранного режима

Выход

5. Rebass

В настоящее время веб-разработка превратилась из сложной работы по настройке CSS и HTML в динамические компоненты, где стилизация в основном генерируется автоматически с помощью библиотек. Rebass — одна из лучших библиотек сетки, которая предоставляет компоненты пользовательского интерфейса, оставляя разработчику возможность сосредоточиться только на разработке страницы. У нее более 7,3 тыс. звезд и 580 форков на GitHub.

В Rebass есть провайдер тем, с помощью которого можно установить темы, поднимающие пользовательский опыт на совершенно новый уровень. К библиотеке легче адаптироваться. Разработчики быстро привыкнут к кодам и синтаксису. Она также может интегрироваться с другими библиотеками для повышения производительности вашего веб-приложения.

Установка

    npm i rebass

Вход в полноэкранный режим Выйти из полноэкранного режима

Пример


 /* eslint no-unused-vars: 0 */
    import React from 'react'
    import { render } from 'react-dom'
    import preset from '[@rebass/preset](http://twitter.com/rebass/preset)'
    import { ThemeProvider } from 'emotion-theming'
    // OR import { ThemeProvider } from 'styled-components'
    import {
      Box, Flex,Heading,Text, Button,Link,Image, Card, 
    } from 'rebass'

    // OR use 'rebass/styled-components'

    const theme = {
      ...preset,
    }

    const App = props => {
      return (
        <ThemeProvider theme={theme}>
          <Box variant='styles.root'>
            <Heading as='h1' mb={4}>
              Want To Proceed?
            </Heading>
            <Button variant='primary' mr={3}>
              Yes
            </Button>
            <Button variant='outline'>
              No
            </Button>
          </Box>
        </ThemeProvider>
      )
    }

    render(<App />, root) // eslint-disable-line no-undef
Войти в полноэкранный режим Выход из полноэкранного режима

Выход

6. Semantic UI React

Подобно Bootstrap, не лучше ли иметь специализированную библиотеку, разработанную путем интеграции React с Semantic UI? Что ж, у нас есть еще одна лучшая библиотека компонентов — Semantic UI React. Ее количество звезд на GitHub составляет 12,2 тыс. и имеет 3,6 форков. Библиотека свободна от jQuery, потому что, поскольку React имеет виртуальный DOM, неразумно держать библиотеку, которая манипулирует DOM. С библиотекой Semantic UI React разработчики могут легко создавать потрясающие и отзывчивые веб-дизайны с синтаксически и связным кодом.

Здесь нет недостатка в настраиваемых элементах, что дает возможность беспрепятственного творчества. Однако, несмотря на все ее уникальные возможности, если у вас нет практического опыта работы с JavaScript, библиотека может показаться вам немного сложной.

Теперь проводите тестирование Semantic UI на платформе LambdaTest и создавайте пиксельно идеальные веб-опыты на основе Semantic UI.

Установка

    $  npm install semantic-ui-react semantic-ui-css

Войдите в полноэкранный режим Выйти из полноэкранного режима

После завершения установки импортируйте минифицированный файл CSS в ваш проект.

    import 'semantic-ui-css/semantic.min.css'

Войти в полноэкранный режим Выйти из полноэкранного режима

Пример

import React from "react";
    import { render } from "react-dom";
    import {Button,
      Container,
      Divider,
      Header,
      Icon,
      Message  
    }
    from "semantic-ui-react";

    const App = () => (
      <Container>
        <Divider hidden />
        <Header as="h1" floated="left">

          Click To Select
        </Header>

    <Divider hidden clearing />
        <Button
          content="GitHub"
          icon="github"
          href="[https://github.com/Semantic-Org/Semantic-UI-React](https://github.com/Semantic-Org/Semantic-UI-React)"
          target="_blank"
        />
        <Button
          color="blue"
          content="Documentation"
          icon="book"
          href="[https://react.semantic-ui.com](https://react.semantic-ui.com)"
          target="_blank"
        />
        <Button
          color="orange"
          content="Stack Overflow"
          icon="stack overflow"
          href="[https://stackoverflow.com/questions/tagged/semantic-ui-react?sort=votes](https://stackoverflow.com/questions/tagged/semantic-ui-react?sort=votes)"
          target="_blank"
        />

    <Divider hidden clearing />
        <Message info>
          After forking, update this template to demonstrate the bug.
        </Message>
      </Container>
    );

    render(<App />, document.getElementById("root"));
Вход в полноэкранный режим Выход из полноэкранного режима

Выход

7. React Motion

Вам нужно простое решение для анимации компонентов в React? React Motion — одна из лучших библиотек React, которую вы можете найти. Используя законы физики, библиотека поможет вам создать реалистичную анимацию. Все, что вам нужно сделать, это

  • Указать значения для демпфирования и жесткости в одном из экспортированных вами компонентов.

  • Библиотека позаботится обо всем остальном, создавая бесконечные возможности анимации.

  • Глазурь на торте? Вам не нужно беспокоиться о прерывании анимации. API значительно упрощается.

React Motion имеет более 19,6 тысяч звезд и 1,1 тысяч форков на GitHub. Документация довольно проста для начала работы, где вы можете найти исходный код каждого компонента.

Установка

    npm i react-motion

Войдите в полноэкранный режим Выйти из полноэкранного режима

Пример

import React, { Component } from "react"
    import { render } from "react-dom"
    import Map from "./Map"

    import "./styles.css"

    class App extends Component {
      constructor() {
        super()
        this.state = { center: [0, 0] }
      }
      changeCenter = center => () => {
        this.setState({ center })
      }
      render() {
        return (
          <div style={{ textAlign: "center" }}>
            <div style={{ padding: "1rem 0" }}>
              <button
                className="btn"
                onClick={this.changeCenter([-122.4194, 37.7749])}
              >
                {"San Francisco"}
              </button>
              <button
                className="btn"
                onClick={this.changeCenter([151.2093, -33.8688])}
              >
                {"Sydney"}
              </button>
            </div>
            <Map center={this.state.center} />
          </div>
        )
      }
    }
    render(<App />, document.getElementById("root"))
Войти в полноэкранный режим Выход из полноэкранного режима

Выход

8. React Hook Form

Еще одна лучшая библиотека компонентов в нашем списке — React Hook Form. С более чем 20,3 тыс. звезд на GitHub, как говорит само название, библиотека React Hook Form используется с API React hooks. Но что именно она делает? Библиотека выравнивает пользовательский интерфейс в соответствии со стандартами существующего HTML, тем самым облегчая валидацию формы.

Часто в форме присутствуют некоторые нативные HTML-входы и неконтролируемые компоненты. Библиотека привносит их. Разработанная с помощью Typescript, она помогает создать тип данных формы, который должен поддерживать значения формы. Используя эту библиотеку, ваша форма становится безошибочной, в значительной степени минимизируя время рендеринга. Это еще не все. Вы можете интегрировать и использовать ее с библиотеками управления состояниями React.

Установка

    npm install react-hook-form

Вход в полноэкранный режим Выход из полноэкранного режима

Пример


import React from "react";
import ReactDOM from "react-dom";
import useForm from "react-hook-form";
import "./styles.css";

// Messages
const required = "This field is required";
const maxLength = "Your input exceed maximum length";

// Error Component
const errorMessage = error => {
  return <div className="invalid-feedback">{error}</div>;
};

export default function App() {
  const { register, handleSubmit, errors } = useForm();
  const onSubmit = data => console.log(data);

  return (
    <div className="container">
      <div className="col-sm-12">
        <h3>React Hook Form</h3>
      </div>
      <div className="col-sm-12">
        <form onSubmit={handleSubmit(onSubmit)}>
          <div className="form-group">
            <input
              className="form-control"
              type="text"
              placeholder="First Name"
              name="Username"
              ref={register({ required: true, maxLength: 20 })}
            />
            {errors.Username &&
              errors.Username.type === "required" &&
              errorMessage(required)}
            {errors.Username &&
              errors.Username.type === "maxLength" &&
              errorMessage(maxLength)}
          </div>
          <div className="form-group">
            <input
              className="form-control"
              type="text"
              placeholder="Last Name"
              name="Name"
              ref={register({ required: true, maxLength: 50 })}
            />
            {errors.Name &&
              errors.Name.type === "required" &&
              errorMessage(required)}
            {errors.Name &&
              errors.Name.type === "maxLength" &&
              errorMessage(maxLength)}
          </div>
          <div className="form-group">
            <input
              className="form-control"
              type="tel"
              placeholder="Mobile number"
              name="MobileNumber"
              ref={register({ maxLength: 12 })}
            />
            {errors.MobileNumber &&
              errors.MobileNumber.type === "maxLength" &&
              errorMessage(maxLength)}
          </div>
          <div className="form-group">
            <input
              className="form-control"
              type="email"
              placeholder="Email"
              name="Email"
              ref={register({ required: true, pattern: /^S+@S+$/i })}
            />
            {errors.Email &&
              errors.Email.type === "required" &&
              errorMessage(required)}
          </div>

          <div className="form-group">
            <input
              className="form-control"
              type="text"
              placeholder="Password"
              name="Password"
              ref={register({ required: true })}
            />
            {errors.Password &&
              errors.Password.type === "required" &&
              errorMessage(required)}
          </div>
          <div className="form-group">
            <label>Gender</label>
            <br />
            <div className="form-check form-check-inline">
              <input
                className="form-check-input"
                type="radio"
                name="genderOptions"
                value="Male"
                id="inlineRadio1"
                ref={register}
              />
              <label className="form-check-label" htmlFor="inlineRadio1">
                Male
              </label>
            </div>
            <div className="form-check form-check-inline">
              <input
                className="form-check-input"
                type="radio"
                name="genderOptions"
                value="Female"
                id="inlineRadio2"
                ref={register}
              />
              <label className="form-check-label" htmlFor="inlineRadio2">
                Female
              </label>
            </div>

          </div>
          <div className="form-group">
            <input
              className="form-control"
              type="datetime"
              placeholder="Date of Birth"
              name="DateofBirth"
              ref={register({
                pattern: /(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)dd/i
              })}
            />
            {errors.DateofBirth &&
              errorMessage("Please use the following format MM/DD/YYYY")}
          </div>
          <div className="form-group">
            <textarea className="form-control" name="About" ref={register} />
          </div>
          <div className="form-group">
            <input
              type="checkbox"
              placeholder="Terms & conditions"
              name="Terms & conditions"
              id="customCheck1"
              ref={register}
            />
            <label htmlFor="customCheck1">  By clicking this, you are agreeing to our terms & services.</label>
          </div>
          <div className="form-group">
            <input className="btn btn-primary" type="submit" />
          </div>
        </form>
      </div>
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
Войти в полноэкранный режим Выход из полноэкранного режима

Выход

9. Redux

Когда речь заходит о библиотеках управления состояниями, нам на ум приходит Redux. Redux также входит в категорию лучших библиотек компонентов с 20,9 тыс. звезд на GitHub и 3 тыс. форков. Хотя она предназначена для использования с библиотечными компонентами React UI, вы также можете использовать ее с Vue, Angular, Ember и другими JS-фреймворками.

Redux помогает подключать компоненты React к фрагментам состояния, уменьшая необходимость в реквизитах или обратных вызовах. Эту библиотеку часто называют лучшим другом разработчика. Она помогает писать последовательные коды и является дружественной к окружающей среде. Вы также можете редактировать код, пока ваше приложение работает. В React Native есть официальная библиотека Redux — React-Redux.

Установка

npm install @reduxjs/toolkit
Вход в полноэкранный режим Выход из полноэкранного режима

Пример

import React from "react";
    import { render } from "react-dom";
    import { Provider } from "react-redux";

    import store from "./store";
    import Page from "./Page";

    const App = () => (
      <Provider store={store}>
        <Page />
      </Provider>
    );

    render(<App />, document.getElementById("root"));
Войти в полноэкранный режим Выход из полноэкранного режима

10. React 360

Мы живем в эпоху дополненной и виртуальной реальности. В настоящее время большинство предприятий, особенно в сфере розничной торговли или электронной коммерции, предоставляют AR/VR опыт для виртуального опробования своего продукта. Было бы очень полезно, если бы вы могли создать AR/VR опыт в React, не так ли?

React 360 — это еще одна лучшая библиотека React, которая поможет вам создавать VR и 360-эффекты с помощью React. Все, что вы создадите, будет плавно работать на мобильных и настольных компьютерах, а также на устройствах VR. Цель этой библиотеки — упростить процесс создания сложных VR и 3D пользовательских интерфейсов. Как и ее предшественница, React VR, эта библиотека также может похвастаться тем, что обеспечивает увлекательный опыт для своих пользователей, используя знакомые концепции и инструменты.

Установка

Перед установкой React 360 убедитесь, что на вашей машине установлен NodeJS.

    $ npm install -g react-360-cli

Войдите в полноэкранный режим Выйти из полноэкранного режима

Пример

import React from "react";
    import ReactDOM from "react-dom";
    import React360 from "./React360";

    import "./styles.css";

    function App() {
      return (
        <div className="App">
          <h1>Hello CodeSandbox</h1>
          <h2>Start editing to see some magic happen!</h2>
          <img
            className="icon-react360"
            alt=""
            src={require(`./360_degrees.png`)}
          />
          <React360 dir="awair-360" numImages={55} />
        </div>
      );
    }

    const rootElement = document.getElementById("root");
    ReactDOM.render(<App />, rootElement);

Войти в полноэкранный режим Выход из полноэкранного режима

Выход

11. FABRICS React

Fabrics React, разработанная Microsoft, является одной из лучших библиотек компонентов, обеспечивающих работу с MS Office. Компоненты, которые вы найдете в Fabrics React, разработаны с использованием новейших фреймворков, таких как SASS, ES6 и Webpack. Все компоненты имеют упрощенный дизайн, что делает их более удобными в использовании.

Разработчики могут использовать их, легко интегрируя с такими библиотеками, как redux-form. Библиотеку можно использовать на всех платформах, таких как мобильные, ноутбуки, настольные компьютеры и даже Office365 или OneNote. Ядро FABRIC представляет собой набор компонентов SASS в сочетании с классами CSS, что позволяет получить доступ к различным цветам, анимации и т.д.

Установка

    $ npm install --save react-fabric

Вход в полноэкранный режим Выход из полноэкранного режима

Пример

import React from 'react'
    import { render } from 'react-dom'
    import 'fabric-webpack'

    import DesignCanvas from './DesignCanvas'
    import Rect from './Rect'
    import Circle from './Circle'
    import Image from './Image'

    const App = () => (
      <div>
        <DesignCanvas>
          <Rect width={100} height={100} fill="blue" />
          <Circle radius={20} top={200} />
          <Image url="[https://http.cat/100](https://http.cat/100)" scale={0.2} top={100} />
        </DesignCanvas>
      </div>
    )

    render(<App />, document.getElementById('root'))
Войти в полноэкранный режим Выход из полноэкранного режима

12. React Virtualized

React Virtualized — одна из лучших библиотек React grid, нацеленных на конкретные аспекты пользовательского интерфейса. Имея 21,6 тыс. звезд на GitHub и 2,7 тыс. форков, React Virtualized разработана для решения единственной задачи — эффективного отображения таблиц и списков на вашей странице. Вы можете подумать, что рендеринг таблицы не так уж и сложен. Но это так, если ваша таблица состоит из тысяч элементов. Библиотека пытается справиться с этим исключительным случаем.

Кроме того, веб-разработчики могут добавить в свои интерфейсы различные юзабилити-функции на основе JavaScript, такие как бесконечный загрузчик, скроллер окон, степпер клавиш со стрелками, измеритель ячеек, автоматический сайзер и так далее.

Установка

    npm install react-virtualized --save

Вход в полноэкранный режим Выход из полноэкранного режима

Пример

import React from 'react';
    import { render } from 'react-dom';
    import UserForm from './UserForm';

    const imaginaryUser = {
      email: '',
      username: '',
      imaginaryThingId: null,
    };

    const App = () => (
      <div className="App">
        <UserForm user={imaginaryUser} />
      </div>
    );

    render(<App />, document.getElementById('root'));
Вход в полноэкранный режим Выход из полноэкранного режима

13. React Desktop

React Desktop — это библиотека, основанная на JavaScript и построенная на React. Цель этой библиотеки — привнести опыт использования нативного рабочего стола в веб. Она поддерживает множество компонентов для windows и macOS, таких как Checkbox, dialog, radio, nav pane и т.д. Библиотека имеет рейтинг более 8 тысяч звезд на GitHub.

React Desktop — одна из лучших библиотек React для создания веб-приложений, которая помогает предоставлять различные javascript Разработчики могут эффективно воспроизвести пользовательский интерфейс, предоставляемый как Windows, так и macOS, используя компоненты пользовательского интерфейса из библиотеки React Desktop. Это облегчает упрощенный процесс перехода от нативного настольного приложения к веб-приложению.

Установка

    npm install react-desktop --save

Вход в полноэкранный режим Выход из полноэкранного режима

Пример

import React from "react";
    import { Button, TitleBar, Toolbar, SearchField } from "react-desktop/macOs";
    import "./styles.css";

    export default function App() {
      return (
        <>
          <TitleBar controls inset>
            <Toolbar height="43" horizontalAlignment="center" />
          </TitleBar>

    <TitleBar inset>
            <Toolbar height="43" horizontalAlignment="right">
              <SearchField
                placeholder="Search"
                defaultValue=""
                onChange={this.handleChange}
              />
            </Toolbar>
          </TitleBar>

    <Button color="blue" onClick={() => console.log("Clicked!")}>
            Press me!
          </Button>
        </>
      );
    }

Вход в полноэкранный режим Выход из полноэкранного режима

14. Chakra UI

Chakra UI — это библиотека компонентов React, которая предназначена для того, чтобы разработчики тратили меньше времени на написание кода и больше времени на создание отличного пользовательского опыта для пользователей. Она предоставляет модульные, доступные и простые компоненты пользовательского интерфейса, необходимые для создания приложений.

  • Компоненты доступны и соответствуют стандартам WAI-ARIA.

  • Вы можете легко настроить компоненты в соответствии с вашими требованиями к дизайну.

  • У вас будут как светлые, так и темные темы пользовательского интерфейса. Компоненты разработаны с учетом композиции как основной цели. Вы можете легко создавать новые компоненты.

  • Сообщество Chakra UI очень активно. Вы получите всю необходимую помощь, когда бы вы ни застряли.

Установка

 npm i @chakra-ui/react @emotion/react @emotion/styled framer-motion
Вход в полноэкранный режим Выйти из полноэкранного режима

Пример

import React from "react";
    import ReactDOM from "react-dom";
    import Header from "./header";
    import { theme, ThemeProvider, CSSReset } from "[@chakra](http://twitter.com/chakra)-ui/core";

    const breakpoints = ["360px", "768px", "1024px", "1440px"];
    breakpoints.sm = breakpoints[0];
    breakpoints.md = breakpoints[1];
    breakpoints.lg = breakpoints[2];
    breakpoints.xl = breakpoints[3];

    const newTheme = {
      ...theme,
      breakpoints
    };

    function App() {
      return (
        <ThemeProvider theme={newTheme}>
          <CSSReset />
          <Header />
        </ThemeProvider>
      );
    }

    const rootElement = document.getElementById("root");
    ReactDOM.render(<App />, rootElement);
Войти в полноэкранный режим Выход из полноэкранного режима

15. React Final Form

React Final Form — еще одна лучшая библиотека компонентов React. Это основанная на подписке библиотека для управления формами в React. Библиотека была разработана по модульному принципу. Когда ваша форма подписки имеет всего несколько полей, зачем вам загружать большой и сложный код, предназначенный для обработки сотен полей?

Разработчику просто нужно собрать несколько частей вместе и создать специализированную библиотеку в соответствии со своими требованиями. Разработчик должен беспокоиться о размере пакета, если он думает о производительности. React final form предоставляет экономное решение для управления формами с библиотекой, занимающей всего 5,4 кб. Она предлагает API крючков, чтобы вы могли гибко компоновать функции вашей формы. Лучшей особенностью этой библиотеки является то, что элементы формы получают уведомления всякий раз, когда происходит какое-то изменение в состоянии формы.

Установка

Через npm

    npm install --save final-form react-final-form

Войдите в полноэкранный режим Выйти из полноэкранного режима

Пример



 import React from 'react'
    import { render } from 'react-dom'
    import Styles from './Styles'
    import { Form, Field } from 'react-final-form'

    const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))

    const onSubmit = async values => {
      await sleep(300)
      window.alert(JSON.stringify(values, 0, 2))
    }

    const App = () => (
      <Styles>
        <h1>? React Final Form - Simple Example</h1>
        <a href="https://github.com/erikras/react-final-form#-react-final-form">
          Read Docs
        </a>
        <Form
          onSubmit={onSubmit}
          initialValues={{ stooge: 'larry', employed: false }}
          render={({ handleSubmit, form, submitting, pristine, values }) => (
            <form onSubmit={handleSubmit}>
              <div>
                <label>First Name</label>
                <Field
                  name="firstName"
                  component="input"
                  type="text"
                  placeholder="First Name"
                />
              </div>
              <div>
                <label>Last Name</label>
                <Field
                  name="lastName"
                  component="input"
                  type="text"
                  placeholder="Last Name"
                />
              </div>

              <div>
                <label>Favorite Color</label>
                <Field name="favoriteColor" component="select">
                  <option />
                  <option value="#ff0000">❤️ Red</option>
                  <option value="#00ff00">? Green</option>
                  <option value="#0000ff">? Blue</option>
                </Field>
              </div>
              <div>
                <label>Toppings</label>
                <Field name="toppings" component="select" multiple>
                  <option value="chicken">? Chicken</option>
                  <option value="ham">? Ham</option>
                  <option value="mushrooms">? Mushrooms</option>

                </Field>
              </div>


              <div>
                <label>Notes</label>
                <Field name="notes" component="textarea" placeholder="Notes" />
              </div>
              <div className="buttons">
                <button type="submit" disabled={submitting || pristine}>
                  Submit
                </button>
                <button
                  type="button"
                  onClick={form.reset}
                  disabled={submitting || pristine}
                >
                  Reset
                </button>
              </div>
              <pre>{JSON.stringify(values, 0, 2)}</pre>
            </form>
          )}
        />
      </Styles>
    )

    render(<App />, document.getElementById("root"));
Войти в полноэкранный режим Выход из полноэкранного режима

Выход

16. Стилизованные компоненты

Если вы используете традиционный CSS в своем приложении React, вы можете часто сталкиваться с проблемами, случайно перезаписывая селектор, который вы использовали в другом месте.

Styled Components — одна из лучших библиотек React, которая поможет вам организовать ваш проект. Вы можете создавать многократно используемые компоненты для настройки внешнего вида вашего приложения. А проблема, о которой мы говорили ранее? Вы можете избежать этого, напрямую используя синтаксис CSS внутри ваших компонентов. Библиотека довольно популярна и используется такими популярными сайтами, как IMDb, Reddit, Vimeo, Coinbase и многими другими.

Установка

    npm i styled-components

Вход в полноэкранный режим Выйти из полноэкранного режима

Пример

import React from "react";
    import { render } from "react-dom";
    import { Button, th } from "smooth-ui";
    import { darken } from "polished";

    // Simple extend
    const BlueButton = Button.extend`
      background-color: blue !important;
      color: white !important;
    `;

    // Use props & theme in extend
    const BorderedButton = Button.extend`
      border: 1px solid ${props => th(props.variant, color => darken(0.1, color))};

    &:hover {
        border-color: ${props => th(props.variant, color => darken(0.3, color))};
      }
    `;

    // Modify component
    const LinkBorderedButton = BorderedButton.withComponent("a");

    const App = () => (
      <div>
        <BlueButton variant="primary">Yes blue</BlueButton>
        <BorderedButton variant="primary">Smooth Button</BorderedButton>
        <LinkBorderedButton variant="success">This is a link</LinkBorderedButton>
      </div>
    );

    render(<App />, document.getElementById("root"));
Войти в полноэкранный режим Выход из полноэкранного режима

Выход

17. OnsenUI

В настоящее время почти все компании занимаются разработкой кроссбраузерно совместимых мобильных приложений. Если вы разработчик приложений, который часто сталкивался с проблемой совместимости устройств или ОС, вас должен заинтересовать OnsenUI.

OnSenUI — это еще одна лучшая библиотека компонентов для React, которая использует JavaScript и HTML5 и интегрируется с React, Vue и Angular. Компоненты стилизуются автоматически в зависимости от платформы. Это означает, что один исходный код работает как на Android, так и на iOS. Хотя в коллекции элементов используется чистый CSS, есть пользовательские элементы, которые помогут вам, если вы хотите получить более подробную информацию.

Установка

    npm install onsenui

Вход в полноэкранный режим Выйти из полноэкранного режима

Пример



import React from "react";
    import { render } from "react-dom";
    import ons from "onsenui";
    import {
      Splitter,
      SplitterSide,
      SplitterContent,
      Page,
      Toolbar,
      ToolbarButton,
      Icon
    } from "react-onsenui";

    class MyPage extends React.Component {
      state = { isOpen: false };
      hide=()=> {
        this.setState({ isOpen: false });
      }

    show = () => {
        this.setState({ isOpen: true });
      }
      renderToolbar() {
        return (
          <Toolbar>
            <div className="center">My app!</div>
            <div className="right">
              <ToolbarButton>
                <Icon icon="ion-navicon, material:md-menu" />
              </ToolbarButton>
            </div>
          </Toolbar>
        );
      }
      render() {
        return (
          <Splitter>
            <SplitterSide
              style={{
                boxShadow:
                  "0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23)"
              }}
              side="left"
              width={200}
              collapse={true}
              isSwipeable={true}
              isOpen={this.state.isOpen}
              onClose={this.hide}
              onOpen={this.show}
            >
              <Page />
            </SplitterSide>
            <SplitterContent>
              <Page renderToolbar={this.renderToolbar}>
                <section style={{ margin: "16px" }}>
                  <p>Swipe right to open the menu.</p>
                </section>
              </Page>
            </SplitterContent>
          </Splitter>
        );
      }
    }

    render(<MyPage />, document.getElementById("root"));

Войти в полноэкранный режим Выход из полноэкранного режима

Выход

18. Фермент

У нас есть Jasmine или Karma для тестирования JavaScript или Angular. Было бы здорово иметь библиотеку, предназначенную для тестирования приложений React. Enzyme — одна из лучших библиотек React, которая позволяет манипулировать, преобразовывать и моделировать вывод компонентов React так, чтобы добиться желаемого результата. В отличие от других библиотек тестирования, эта более простая и ценная.

Она способна имитировать API jQuery и DOM, поэтому более гибкая и интуитивно понятная. Enzyme также предлагает уникальный API, известный как Shallow Rendering API. Этот API позволяет тестировать только те компоненты, которые вы считаете необходимыми в соответствии с вашими требованиями. Это гарантирует, что ваше приложение не будет перегружено тестированием множества компонентов в любой момент времени.

Установка

    npm i --save-dev enzyme enzyme-adapter-react-16

Вход в полноэкранный режим Выход из полноэкранного режима

Пример

import React from "react";
    import ReactDOM from "react-dom";

    import "./styles.css";

    function App() {
      return (
        <div className="App">
          <h1>Hello CodeSandbox</h1>
          <h2>Start editing to see some magic happen!</h2>
        </div>
      );
    }

    const rootElement = document.getElementById("root");
    ReactDOM.render(<App />, rootElement);
Вход в полноэкранный режим Выход из полноэкранного режима

Выход

19. React Admin

Имея более 12 тысяч звезд на GitHub, React Admin также считается одной из лучших библиотек React для использования, если вы разрабатываете приложения для администрирования B2B на основе GraphQL или REST API. Библиотека позволяет настраивать дизайн таких приложений. Она построена с использованием набора таких известных библиотек, как Material UI, Redux и React Router.

Хотя разработчики в основном используют бесплатную версию, у React Admin также есть корпоративная версия. Корпоративная версия предоставляет профессиональную поддержку от создателей, а также доступ к определенным компонентам частных модулей.

Установка

    npm install react-admin

Вход в полноэкранный режим Выйти из полноэкранного режима

Пример

import * as React from 'react';
    import PostIcon from '[@material](http://twitter.com/material)-ui/icons/Book';
    import UserIcon from '[@material](http://twitter.com/material)-ui/icons/Group';
    import { Admin, Resource, ListGuesser } from 'react-admin';
    import jsonServerProvider from 'ra-data-json-server';

    import { PostList, PostEdit, PostCreate, PostShow } from './posts';
    import { UserList } from './users';
    import Dashboard from './Dashboard';
    import authProvider from './authProvider';

    const App = () => (
        <Admin
            dataProvider={jsonServerProvider(
                '[https://jsonplaceholder.typicode.com'](https://jsonplaceholder.typicode.com')
            )}
            authProvider={authProvider}
            dashboard={Dashboard}
        >
            <Resource
                name="posts"
                icon={PostIcon}
                list={PostList}
                edit={PostEdit}
                create={PostCreate}
                show={PostShow}
            />
            <Resource name="users" icon={UserIcon} list={UserList} />
            <Resource name="comments" list={ListGuesser} />
        </Admin>
    );
    export default App;
Войти в полноэкранный режим Выход из полноэкранного режима

20. React Toolbox

React Toolbox — это коллекция компонентов React, которые работают благодаря реализации материального дизайна Google. Работающая на CSS, библиотека интегрируется с вашим рабочим процессом webpack, а также предоставляет вам свободу использования любого другого связующего модуля.

При работе с этой библиотекой вы можете импортировать компоненты в пакетах, или, если вы хотите пропустить импорт ненужных пакетов или CSS, вы можете импортировать их в необработанном виде.

Установка

    $ npm install --save react-toolbox

Вход в полноэкранный режим Выйти из полноэкранного режима

Пример

import React from "react"
    import { render } from "react-dom"
    import ThemeProvider from "react-toolbox/lib/ThemeProvider"

    import markdownToReact from "./markdownToReact"
    import theme from "./assets/react-toolbox/theme"
    import "./assets/react-toolbox/theme.css"

    const content = markdownToReact(
    `# Hello

    !Icon[add](Add){ floating accent }
    !Icon[bookmark](Bookmark){ raised primary label="Bookmark" }`
    )

    const styles = {
      fontFamily: "sans-serif",
      textAlign: "center",
    }

    const App = () => (
      <ThemeProvider theme={ theme }>
        <div style={ styles }>
          { content }
        </div>
      </ThemeProvider>
    )

    render(<App />, document.getElementById('root'))
Войти в полноэкранный режим Выход из полноэкранного режима

21. React Suite

Разработчики React предпочитают библиотеку, которая предназначена не только для UI, но и для backend и middle платформ. React Suite также считается одной из лучших библиотек React, которая предоставляет упомянутые выше все необходимые компоненты для создания интерактивного приложения и дружественного опыта для разработчика.

Библиотека поддерживает все основные браузеры, такие как Chrome, Edge, IE, Firefox и Safari. Однако IE 9 больше не поддерживается. Помимо кроссбраузерной поддержки, библиотека также поддерживает рендеринг на стороне сервера. Если вы используете пакет React, вы получите поддержку Next.js для создания веб-приложений.

Установка

    npm i rsuite@next --save

Войдите в полноэкранный режим Выход из полноэкранного режима

Пример

import React from "react";
    import { render } from "react-dom";
    import { Button } from "rsuite";

    const styles = {
      padding: 20,
      textAlign: "center"
    };

    const App = () => (
      <div style={styles}>
        <Button>Hello World</Button>
      </div>
    );

    render(<App />, document.getElementById("root"));

Вход в полноэкранный режим Выход из полноэкранного режима

Вывод

url-encode — кодирование URL предоставляет способ преобразования специальных символов в формат, который может быть передан через Интернет.

Завершение работы!

После разработки приложения с помощью любого из вышеупомянутых фреймворков вы можете провести тестирование веб-приложения на совместимость с браузерами, чтобы проверить, правильно ли оно отображается в различных браузерах и операционных системах. LambdaTest — это облачный инструмент тестирования, который позволяет протестировать ваш сайт на 3000+ браузерах и операционных системах.

Вы также можете провести тестирование мобильной отзывчивости вашего сайта, чтобы проверить его отзывчивый веб-дизайн. LT Browser — это удобный для разработчиков инструмент, позволяющий проверить ваш сайт в 50+ предварительно созданных видовых экранах для мобильных, планшетных, настольных компьютеров и даже ноутбуков.

Это все с нашей стороны. Хотя существует множество других библиотек React, которые разработчики считают полезными, мы рассказали о лучших из них. Также сообщите нам, если вы использовали какую-либо другую библиотеку, которая превосходит по удобству использования упомянутые в списке. Мы надеемся, что у вас остались приятные впечатления от чтения этого блога, и он окажется полезным для любого разработчика React.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *