Что это такое?
Formik — это небольшая библиотека для React, которая упрощает создание форм: она берёт на себя три самые неприятные части — получение значений из состояния формы и запись их туда, валидацию и сообщения об ошибках, а также обработку отправки формы.
Это библиотека, которую я добавляю в своё React-приложение, или отдельный инструмент?
Библиотека: Formik — это npm-пакет, написанный на TypeScript. Его импортируют в React-проект и используют для построения форм с помощью компонентов, хуков, render props или компонентов высшего порядка.
Как добавить её в проект?
Установите её пакетным менеджером ('npm install formik' или 'yarn add formik') в своём React-проекте, а затем импортируйте в компонентах, как любую другую библиотеку.
Нужно ли устанавливать что-то ещё вместе с ней?
Нет. У самой Formik нет ни одной runtime-зависимости — единственное условие это уже существующий React-проект, потому что она является прослойкой для форм поверх React.
Она будет работать в React Native-приложении или только в вебе?
И там, и там. React Native — один из официальных направлений проекта, и те же API для работы со значениями, валидацией и отправкой работают и для нативных мобильных форм, и для веба.
Как форма выглядит в коде?
Вы оборачиваете свою разметку в компонент, передавая ему initialValues и колбэк onSubmit; кроме того, пакет предоставляет хук (useFormik) и HOC withFormik как альтернативу стилю с render prop.
Formik всё ещё поддерживается или проект заброшен?
Репозиторий не архивирован и до сих пор показывает активную работу: CI запускается на изменения, релизы автоматизированы через changesets, а с 2017 года проект собрал около 34,3 тыс. звёзд.
Она хорошо работает с TypeScript?
Да — сама Formik написана на TypeScript, поэтому определения типов идут в комплекте с npm-пакетом, и вы получаете типизированные формы и обработчики без дополнительных установок.
Она навяжет моим формам какой-то определённый внешний вид?
Нет. Formik занимается только состоянием, валидацией и отправкой и не содержит собственного интерфейса — разметка и стили остаются вашими, а её хелперы просто связывают значения и обработчики с вашими полями ввода.
What are similar projects?
react-hook-form, formily, redux-form, nuqs, react-jsonschema-form, ultrastorage, awesome-react-hooks, zustand
Which topics is it in?
form, react-hooks, forms, validation, hooks, state-management, react-native, developers, ios, android, react, npm