Чтобы упростить разработку приложений React, мы можем добавить несколько библиотек, которые упростят нам жизнь.
В этой статье мы рассмотрим некоторые популярные библиотеки для приложений React.
Formik
Чтобы упростить обработку форм, мы можем использовать библиотеку форм для обработки.
Formik - это одна из библиотек, которую мы можем использовать.
Для его установки запускаем:
npm i formik
Затем мы можем использовать его, написав:
import React from "react"; import { Formik } from "formik"; export default function App() { return ( <div className="App"> <Formik initialValues={{ email: "", name: "" }} validate={values => { const errors = {}; if (!values.email) { errors.email = "Required"; } else if ( !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i.test(values.email) ) { errors.email = "Invalid email address"; } return errors; }} onSubmit={(values, { setSubmitting }) => { setTimeout(() => { alert(JSON.stringify(values, null, 2)); setSubmitting(false); }, 900); }} > {({ values, errors, touched, handleChange, handleBlur, handleSubmit, isSubmitting }) => ( <form onSubmit={handleSubmit}> <input type="email" name="email" placeholder="email" onChange={handleChange} onBlur={handleBlur} value={values.email} /> {errors.email && touched.email && errors.email} <input type="name" name="name" placeholder="name" onChange={handleChange} onBlur={handleBlur} value={values.name} /> {errors.name && touched.name && errors.name} <button type="submit" disabled={isSubmitting}> Submit </button> </form> )} </Formik> </div> ); }
Мы используем компонент Formik
, который идет в комплекте.
Свойство initialValues
имеет начальные значения для наших полей.
В опоре validate
есть наша функция проверки.
Мы можем получить все values
, проверить их и вернуть любые ошибки в объекте, если они есть.
Свойство onSubmit
принимает обработчик отправки, который имеет введенные значения.
И тогда мы можем что-нибудь сделать с ними, чтобы отправить их.
Он запускается только в том случае, если все значения действительны.
Между тегами у нас есть функция с объектом со многими свойствами в качестве параметра.
values
имеет значения.
errors
имеет ошибки проверки формы.
touched
указывает, какое поле затронуто.
handleChange
имеет функцию обработчика изменения поля ввода.
handleBlur
имеет обработчик для обработки полей формы, выходящих из фокуса.
isSubmitting
имеет логическое значение, указывающее, отправлено ли оно.
Мы передаем их все в различные части формы.
handleChange
, handleBlur
и values
передаются в поле формы.
errors
находятся за пределами поля.
isSubmitting
передается в кнопку, чтобы отключить ее при отправке.
rc-слайдер
Мы можем использовать пакет rc-slider, чтобы добавить компонент слайдера в наше приложение React.
Чтобы установить его, мы можем запустить:
npm i rc-slider
Затем мы можем использовать компоненты Slider
и Range
, чтобы добавить ползунок в наше приложение:
import React from "react"; import Slider, { Range } from "rc-slider"; import "rc-slider/assets/index.css"; export default function App() { return ( <div className="App"> <Slider /> <Range /> </div> ); }
Мы можем сделать его управляемым компонентом, добавив реквизиты value
, onChange
и onAfterChange
:
import React from "react"; import Slider from "rc-slider"; import "rc-slider/assets/index.css"; export default function App() { const [value, setValue] = React.useState(0); const onSliderChange = value => { setValue(value); }; const onAfterChange = value => { console.log(value); }; return ( <div className="App"> <Slider value={value} onChange={onSliderChange} onAfterChange={onAfterChange} /> </div> ); }
onChange
обновит выбранное значение как значение состояния value
.
value
имеет выбранное значение.
Мы можем настроить шаги, отметки, стили ручки и многое другое.
rc-animate
Мы можем использовать rc-animate для анимации компонентов React.
Для его установки запускаем:
npm i rc-animate
Тогда мы можем написать:
import React from "react"; import Animate from "rc-animate"; const Div = props => { const { style, show, ...restProps } = props; const newStyle = { ...style, display: show ? "" : "none" }; return <div {...restProps} style={newStyle} />; }; export default class App extends React.Component { constructor(props) { super(props); this.state = { enter: true }; } toggle(field) { this.setState({ [field]: !this.state[field] }); } render() { const style = { width: "200px", height: "200px", backgroundColor: "red" }; return ( <div> <label> <input type="checkbox" onChange={this.toggle.bind(this, "enter")} checked={this.state.enter} /> show </label> <br /> <br /> <Animate component="" showProp="show" transitionName="fade"> <Div show={this.state.enter} style={style} /> </Animate> </div> ); } }
использовать это.
Мы создаем компонент Div
, чтобы получить стили других реквизитов.
Затем мы используем компонент Animate
, чтобы добавить опору transitionName
для добавления анимации затухания.
У нас также есть флажок для переключения div.
Заключение
Formik - полезный компонент для работы с формами.
rc-slider помогает нам легко добавить слайдер.
rc-animate позволяет нам добавлять анимацию в наше приложение React.