Библиотека проверки формы React, построенная под 3 КБ

TL;DR: Представляем новую библиотеку React Hook для более простого и чистого подхода к проверке формы (ИМХО).

Я имел дело с формами в течение последних лет, будь то отправка одной формы или воронка с несколькими шагами. В течение многих лет я имел опыт работы с такими библиотеками, как Redux-форма а также Муравьиный. Оба являются отличной библиотекой для того, что они предлагают.

Совсем недавно Реагировать 16.8 посадил нас с Крюк, что, на мой взгляд, является одной из лучших функций, реализованных командой React🌹 (спасибо, команда React). Поэтому я обнаружил новый подход к написанию проверки формы, потенциально более чистый подход. позвольте мне показать вам код 🔎

import React from 'react'
import useForm from 'react-hook-form'

function App() {
  const { register, handleSubmit, errors } = useForm() 
  const onSubmit = (data) => { console.log(data) } 
    
  return (
    <form onSubmit={handleSubmit(onSubmit)}>
      <input name="firstname" ref={register} /> // register input
        
      <input name="lastname" ref={register({ required: true })} /> // register as required field
      {errors.lastname && 'Last name is required.'} // display error message when last name is not valid

      <input name="age" ref={register({ pattern: /\d+/ })} />  // register as input with pattern
      {errors.age && 'Please enter number for age.'} // display error message when age is not valid

      <input type="submit" />
    </form>
  )
}

Как видно из приведенного выше примера, ни один компонент не был импортирован. Поэтому вместо того, чтобы иметь управляемый ввод/выбор над формой, этот подход неконтролируемый ввод формы и регистрация их ссылка в Форма хука реакции. Это позволяет хуку иметь полный контроль и понимание ваших элементов формы, и, следовательно, раскрывает множество других преимуществ:

  • Не требуется никаких внешних компонентов для переноса входных данных, что сделало библиотеку ловушек намного меньше (3 КБ gzip)
  • Поскольку это не контролируется, вам больше не требуется иметь onChange и устанавливать значение для вашего ввода, начните использовать существующую HTML-разметку.
  • Если ссылка компонента зарегистрирована в хуке, вы можете легко получить доступ к этой ссылке при возникновении ошибки и привязать ее к определенному полю.
  • Гораздо проще API, потому что проверка происходит на уровне реестра.
  • Отлично подходит для производительности, так как изменение ввода больше не вызывает повторный рендеринг, посмотрите сравнение производительности. здесь.
  • Простой доступ к состоянию формы, так как Hook хранит ссылки для каждого входа. вы можете легко запросить их значение.

Это мой обзор преимуществ по сравнению с использованием React Hook Form, я думаю, что с таким подходом все намного проще (ИМХО). Пожалуйста, проверьте веб-сайт для живая демонстрацияя также построил форму строитель который позволяет вам создавать формы и копировать/вставлять код в вашу среду или codeSandbox, чтобы протестировать их. Многие примеры также живут на Гитхаб страница.

5zmi7vmw53o16uoabhov.jpg

Я действительно надеюсь, что это облегчит проверку формы, и не стесняйтесь оставлять мне вопросы или предложения по Гитхаб (пожалуйста, оставьте звезду, если вы найдете это полезным 🙏🏻). ❤️ Спасибо, что читаете.

Похожие записи

Добавить комментарий

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