Fform: React И Jsonschema — Максимальная Гибкость



fform: React и JSONSchema — максимальная гибкость

Гибкая форма (fform) — конструктор форм с минимальной избыточностью кода, при этом максимально гибкий и расширяемый.

Используемый стек технологий: Реагировать (т.16), Редукс (необязательный), JSONсхема , Машинопись .

Основная идея — максимально повторно использовать схемы, компоненты и функции.



Особенности

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



    oneOf

    ,

    allOf

    ,

    $ref

  • Проверка синхронизации/асинхронности/JSON/отправки
  • Нативная поддержка redux, но можно использовать любое другое хранилище (в том числе внутреннее)
  • Полная поддержка массива (добавление/удаление/перемещение)
  • Встроенный просмотрщик
  • Полностью настраиваемые и добавляемые элементы формы.

  • Поддержка реформирования безопасности
  • Нет зависимостей (реагировать как внешний)
Поскольку по спецификации JSONSchema она определяется данными только в формате JSON, в форма форма определяется двумя объектами:
  • JSONSchema (проект v4, с дополнительными свойствами), содержащая только данные JSON и описывающая поля формы и расположение таких объектов, как кнопки, ссылки, вкладки и т. д.
  • объект elements, содержащий компоненты React(v16), функции, часто используемые части компонентов и, в принципе, любой другой код js или JSON, на который можно ссылаться как из любой части объекта elements, так и из расширенных полей объекта JSONSchema. По своей сути элементы — это хранилище кирпичиков кода, из которых затем собирается вся форма, причем степень элементарности этих кирпичиков определяется самим разработчиком.

Гибкость, расширяемость и повторное использование готовых схем, компонентов и функций реализуются следующим образом:
  • Расширение схем с использованием свойств $ref и allOf, как описано в разделе Спецификации схемы JSON .

    Ссылка на пример .

  • Расширение объекта elements по аналогичному принципу, но с другим синтаксисом (чтобы визуально различать, где расширяется схема, а где элементы).

    Документация .

    Ссылка на пример .

  • Обработчики данных и событий используют конвейер (каналы) js-функций почти так же, как это сделано в Linux. Выход одной функции подается на вход следующей, что (при правильном разделении обязанностей между функциями) позволяет повторно использовать существующие функции, а новые добавлять только в том случае, если требуется еще не реализованный функционал.

    Документация .

    Ссылка на пример .



Ссылки

Теги: #github #JavaScript #react.js #typescript #react #jsonschema
Вместе с данным постом часто просматривают: