10 библиотек форм React для вашего унаследованного кода и немного ностальгии

Библиотеки форм - отличный способ избежать переписывания утомительного и скучного кода, наслаждаясь (чаще всего) лучшим кодом, чем тот, который мы, вероятно, поставили бы (не из-за наших навыков кодирования, а потому, что у нас, вероятно, не будет времени или мотивации для получился отличный от).

Сказав это, вам может не повезти и вы обнаружите, что сделали ставку на «неправильную лошадь» - ваша библиотека пользовательского интерфейса больше не поддерживается.

Кстати, при создании библиотеки компонентов рекомендуется использовать Bit. Он позволяет использовать независимые компоненты из любого проекта, вашего или стороннего, а также упрощает управление и обновление компонентов в приложениях.

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

1. React-Formal

React-Formal используется для проверки и сериализации HTML-форм. Он позволяет создавать формы без стандартного кода и разметки форм. Он также предлагает систему проверки схемы по сравнению с традиционным подходом проверки состояния DOM.

React-Formal:

  • Предоставляет формы как с контролируемыми, так и с неконтролируемыми компонентами и отделяет управление от состояния DOM.
  • Работает с объектами JavaScript.
  • Позволяет повторно использовать логику синтаксического анализа и проверки модели.

Как установить

React-формальный использует построитель схемы JavaScript yup для синтаксического анализа и проверки значений. Установите React-financial и Yup с помощью следующих команд:

Мы также установим библиотеку реакции-формальных входов, которая предоставляет надежные типы ввода, такие как средства выбора даты и числа, поля множественного выбора и поля со списком.

Затем определите схему объекта. Forms предоставит ввод в схему, созданную Yup. Ниже приведен пример простой формы.

Он также помогает в создании вложенных форм и поддерживает такие поля, как сообщение и сводка.

2. Реактивные формы

React-forms предоставляет механизм отрисовки и проверки форм React. Это упрощает реализацию компонентов формы.

Как установить

Чтобы использовать последнюю версию react-forms, установите ее следующим образом:

React-forms распространяется как модуль CommonJS и требует Browserify или Webpack для связывания зависимостей.

Как использовать

Создав форму, вы можете управлять значениями ее полей как частью состояния локального компонента:

Давайте воспользуемся компонентом response-form для создания значений:

Чтобы проверить значения формы с помощью схемы JSON, вы должны передать ее в createValue ():

Чтобы настроить React-формы, установите react-stylesheet следующим образом:

3. ValueLink

ValueLink является легким (уменьшено до 6,5 КБ) и работает как с JS, так и с TypeScript. Он предоставляет решения обратного вызова для сложных форм вместе с проверкой ввода. Это делает состояние React идеальным контейнером состояния.

Модульность React и читаемость кода улучшены с помощью NestedLink. Объект ссылки - это ссылка на состояние компонента. ValueLink инкапсулирует значение компонента, обновляет его, проверяет и при необходимости выдает сообщение об ошибке. Он выполняет преобразования, подобные $ link.props.

Как установить

Чтобы использовать NestedLink с React, установите его следующим образом:

Nestedlink не требует никаких других зависимостей.

Как использовать

Вы можете импортировать useLink или valueLink и использовать их с React Hooks или компонентами React:

Создав подкласс React.Component, вы можете использовать link.value для создания привязки к настраиваемому контейнеру состояния.

4. Формы размаха крыльев.

Wingspan-forms создает абстракцию для динамических форм и сеток. Она известна как библиотека динамических форм. KendUI поддерживает его виджеты, поэтому вам понадобится лицензионная версия KendUI.

React - это библиотека управления DOM, а состояния виджетов хранятся на центральном уровне управления JavaScript. Состояния виджетов контролируются переданной ему логикой. Центральное расположение может обрабатывать всю бизнес-логику, которая отделена от виджета.

Виджеты в формах размаха крыльев используют «значение / изменение» в качестве интерфейса для получения значения и обратных вызовов, которые вызываются при выполнении запроса на изменение.

Как установить

Установите wingspan-forms с помощью npm и запустите его с помощью grunt с помощью следующих команд:

Как использовать

Следующий код показывает, как можно создать форму с полями имени, фамилии, пола и возраста с помощью Wingspan-forms:

5. NewForms

NewForms - это изоморфная библиотека обработки форм для React. Ранее он назывался Django.forms.

NewForms определяет новые объекты формы вместо работы с виджетами. Его можно обслуживать на стороне клиента, объединяя его, или можно развернуть на стороне сервера.

Как использовать

Вы можете установить его через npm следующим образом:

Затем вы можете использовать его с require.

NewForms по умолчанию запускается в режиме разработки. Его можно установить в производственный режим, установив для переменной среды NODE_ENV значение «production».

Вы можете расширить новую форму с помощью Form.extend () следующим образом:

Форма состоит из полей для ввода данных. Это могут быть поля или группы полей, которые отображаются пользователю. Каждое поле содержит виджет, который можно настроить и переопределить.

Визуализируйте форму следующим образом:

6. Formjs

FormJS работает с HTML путем создания форм с использованием данных схемы JSON. Он сопоставляет объекты с массивами с помощью Underscore.js и предоставляет такие элементы формы, как поля ввода, поля выбора, загрузку файлов, переключатели и флажки.

Как установить

Включите эти файлы в заголовок:

Теперь включите form.js в тело вашей страницы:

Как использовать

Чтобы настроить form.js, создайте переменную с именем JSON, как описано в приведенном ниже коде:

FormJS использует цикл для визуализации нескольких форм и добавления их в схему. Ненужные обратные вызовы и циклы можно удалить.

FormJS также предоставляет вам опции для функций обратного вызова.

7. React-form-builder

React-form-builder дает компонентам базовое поведение формы и постоянство. Это делается с помощью FormHandlerMixin. К компонентам добавляются свойства, которые можно установить по умолчанию или переопределить.

Как установить

Чтобы установить или опробовать примеры, вы можете клонировать репозиторий git с помощью следующей команды:

Для сборки и выпуска используйте следующие команды:

Затем вы можете открыть сервер на http: // localhost: 8080 / webpack-dev-server /

Как использовать

Чтобы создать форму, вы создаете экземпляр FormHandlerMixin. Вы можете установить «getDefaultProps» или передать его родительскому компоненту. После отображения формы вы можете отправить ее с помощью onSubmit.

Ниже приведен пример использования React-form-builder:

Вы можете отправить форму следующим образом:

8. сплетение-форма

plexus-form - это компонент динамической формы, который использует формат спецификации, основанный на схеме JSON. Создайте форму с помощью схемы и проверьте вводимые данные с помощью подключаемого валидатора.

Это пример создания формы с использованием схемы и валидаторов:

Есть разница между plexus-form и схемой JSON-формы. Plexus-form расширяет спецификацию схемы JSON для использования x-подсказок и x-упорядочения. Порядок элементов по умолчанию определяется x-порядком, в то время как x-подсказки используются для аннотирования схемы подсказками. plexus-form также позволяет связывать определяемые пользователем обработчики ввода.

Вы можете посмотреть более подробную демонстрацию plexus-форм на http://appliedmat Mathematicsanu.github.io/plexus-form/.

9. tcomb-form

tcomb-form определяет модели DOM в JS. Он имеет библиотеку проверки времени для проверки функций для моделей домена tcomb.

С помощью tcomb-форм:

  • Вы пишете меньше кода.
  • Доступность и удобство использования бесплатны, поскольку по умолчанию он автоматически маркирует и выполняет встроенную проверку.
  • Если модель предметной области изменяется, форму обновлять не нужно.
  • Вы можете переопределить автоматические функции и добавить в формы дополнительную информацию.

Как установить

Установите путем клонирования библиотеки tcomb из github или с помощью npm:

Как использовать

Следующий код показывает использование tcomb-форм:

Этот код генерирует следующую форму с автоматически созданными метками:

Вы можете найти демонстрации tcomb-формы по адресу https://gcanti.github.io/resources/tcomb-form/playground/playground.html

10. форми-реакция

Формы React сложно проверить, особенно когда у вас есть несколько форм с несколькими проверками в каждой. Formsy-react разработан как конструктор форм вместе с входными данными и проверками, необходимыми для форм.

Поскольку проверки в проектах React выполняются по-разному, Formy-React предоставляет компоненты, которые являются гибкими и пригодными для повторного использования. Вот основные особенности Formy-React:

  • Создавайте любые элементы формы без ограничения традиционными типами ввода. Formy-react предоставит подтверждения.
  • Управляйте проверками с помощью простого синтаксиса.
  • Имейте отдельные обработчики для каждого состояния (onSubmit, onValid и т. Д.) Ваших форм.
  • Анализируйте внешние проверки, такие как ответы сервера, на недействительность входных данных.
  • Динамически добавляйте элементы формы и позволяйте им автоматически регистрировать / отменять регистрацию.

Как установить

Вы можете использовать webpack, browserify после использования yarn для установки Formy-react:

Formy-react предоставляет следующие пакеты компонентов:

Как использовать

В приведенном ниже коде показан процесс создания формных компонентов:

После экспорта элемента вы можете использовать его в следующей форме:

Заключение

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

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

Учить больше