
在本文中,我将讨论四个使您的生活更轻松的库。 至少我希望如此
1)纳米
Github链接这是一个只有一个功能的小型图书馆-生成唯一的ID。 在许多情况下,它可能很有用,就像其他随机字符序列生成器一样。 无可争议的优势:简单且体积很小
-143字节 。
当然,如果使用例如lodash,则可以使用uniqueId()方法。
使用尽可能简单:
import nanoid from 'nanoid' size = 8 id = nanoid(size)
UPD:切勿使用nanoid()在ReactJS中使用
键索引列表或任何其他重复元素。 因为如果使用此方法,则每次更新React组件时,它将认为所有元素都是新元素,并将重新渲染它们,这将对性能产生非常不利的影响,并且通常与key的含义矛盾。
有关密钥的更多信息:
reactjs.org/docs/lists-and-keys.html#keys有关密钥的更多详细信息:
habr.com/company/hh/blog/352150Nanoid使用率极低的一个例子:
import nanoid from 'nanoid' import React from 'react' const ListDrinks = props=>{ const drinks = ['rum','bear','vodka'] return( <ul> {drinks.map((values)=>{
正常使用nanoid的示例:
import React, { Component } from 'react'; import nanoid from 'nanoid' class InputWithLabel extends Component { constructor(props){ super(props) this.id = nanoid() } render() { return ( <div> <label htmlFor={this.id}>My label</label> <input id={this.id} type="text"/> </div> ); } } export default InputWithLabel;
我在评论中向好人学习了如何做,他们是分开的,非常感谢!
2)类名
Github链接该库用于类名称的简单条件联合。 使用它并不比以前的库困难得多。
简单使用示例:
import cn from 'classnames' cn('menu','active')
对我个人而言,任何React应用程序都需要该库。 当然,直到我找到一个更方便的工具。
3)Formik和Yup
链接到github(Formik)链接到github(是)在谈论简化React中的某些事情时,您不禁提及使用表单。 大概每个初学者React开发人员都了解他讨厌使用表单的方式。 一旦有了这种了解,就值得立即寻找挽救药。
对我来说,这种药是福米克和尤普。
Formik是一个可帮助您处理表单的库。 它使从表单中检索数据,验证数据,显示错误消息等变得容易。
Yup是一个库,它是我们自己使用Yup创建的模型的验证器。
为了对这一堆内容进行较为完整的描述,需要单独撰写一篇文章,但我将尝试从鸟瞰中展示它们的含义。
可以在此处运行示例代码:
首先,创建一个图:
import * as Yup from "yup"; const BasicFormSchema = Yup.object().shape({ email: Yup.string()
在上面的代码中,我们定义了一个电路,该电路本质上是一个对象。 它具有三个字段:电子邮件,用户名和密码。 我们为每个字段确定了一些检查。
<Formik />元素是使用Formik的一种方法,它具有许多不同的属性,其中之一是
render 。
import React from "react"; import { Formik, Field, Form } from "formik"; import BasicFormSchema from "./BasicFormShema"; const SignUp = () => ( <div className="container"> <h1>Sign up</h1> <Formik // input- initialValues={{ email: "", username: "", password: "" }} // , validationSchema={BasicFormSchema} //, onsubmit onSubmit={values => { setTimeout(() => { alert(JSON.stringify(values, null, 2)); }, 500); }} //, //errors- //touched- , "", // , - render={({ errors, touched }) => ( <Form className="form-container"> <label htmlFor="email">Email</label> <Field name="email" placeholder="mtarasov777@gmail.com" type="email" /> {// // ", errors.email && touched.email && <div className="field-error">{errors.email}</div>} <label htmlFor="username">Username</label> <Field name="username" placeholder="snapoak" type="text" /> {errors.username && touched.username && ( <div className="field-error">{errors.username}</div> )} <label htmlFor="password">Password</label> <Field name="password" placeholder="123456qwe" type="password" /> {errors.password && touched.password && ( <div className="field-error">{errors.password}</div> )} <button type="submit">Submit</button> </Form> )} /> </div> ); export default SignUp;
代码很简单,我为其提供了注释,因此我认为应该没有问题。
如果它们出现了,那么GitHub存储库将提供出色的文档,您也可以在评论中提出问题。
到此为止。 我知道有许多出色的库可以处理表单,在您看来有些最好,有些最差。 我在这里表达了我的个人看法。
希望本文能对任何人有所帮助。 您可以在注释中编写有用的库示例,我将很高兴学习新知识。