千家信息网

React应用程序库有哪些

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容主要讲解"React应用程序库有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"React应用程序库有哪些"吧!1. Formik面对现实吧,几
千家信息网最后更新 2025年11月07日React应用程序库有哪些

本篇内容主要讲解"React应用程序库有哪些",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"React应用程序库有哪些"吧!

1. Formik

面对现实吧,几乎所有的网络应用程序都有表单,这是一件很棘手的事情。

对于用户来说,没有什么比表单不能正常工作,或在错误验证后重置,再次输入所有信息更让人沮丧的了。表单正确,是网络应用程序中让用户拥有良好体验的关键。

那就意味着:

  • 表单字段应具有客户端验证。

  • 字段在用户"触摸"或表单提交之前不应显示错误。

  • 无效提交时,表单状态不应为"丢失"或"重置"。

  • 提交后,表单应该进行异步(服务器端)验证。

自己编写一个处理所有这些事情的组件是相当复杂的。需要跟踪所有表单值,以及所有表单字段的"触摸"状态,甚至包括 "错误"。

此外,还需要构建表单提交的逻辑。这些都需要足够通用,以便在整个应用程序中重用。没有人想在登录表单、注册表单、地址表单等等中一遍遍重复它。

所以,使用React社区的一个流行库,是比自己构建更好的选择。

Formik是JaredPalmer开发的一个库,在这里,表单编写变得轻而易举。

2. 测试库

测试省了很多时间。当笔者创建一个复杂的特性或组件时,总是在设计、产品和开发之间"游荡"。设计师可能会要求进行视觉或UX更改,产品部门可能要求更改UX。笔者只得不断地反复、重构和更新组件。

通过确保组件或特性的正确测试,可以确保这种重构不会允许回归潜入代码库。它节省了大量的人工测试时间,这给了人们更多信心。

涉及到测试React应用程序时,有一个黄金标准:testing-library/react,也称为react-testing-library。它已经内置在create-react-app中,所以入门就变得很简单啦。

使用testing-library,可以从用户的角度测试组件。

什么意思?下面用一个实际的例子来说明。

在这个示例中,笔者为一个简单的注册表单编写了一个测试。它要求用户提供姓名、电子邮件和密码。这些都是必填字段,如果省略了任何一项,那么表单应该在提交时显示一个错误。

import {render, fireEvent } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { SignupForm } from "./Form";describe("SignupForm",() => {   it("should show an error whenpassword is omitted", () => {     const renderrendered =render();     const nameInput =rendered.queryByLabelText("Name");     userEvent.type(nameInput, "JohnSmith");     const emailInput =rendered.queryByLabelText("Email");     userEventtype(emailInput, "john@smith.net");     const submitButton =rendered.queryByText("Submit");     userEvent.click(submitButton);     expect(       rendered.queryByText("Pleaseinput your password")     ).toBeInTheDocument();   }); });

如你所见,首先使用react-testing-library呈现注册表单。

之后输入姓名与邮箱。

之后点击提交。

最后,出现了"请输入您的密码"。

这个测试中的一切都基于用户如何与表单交互。可以重构表单以使用不同的输入,将其拆分成多个react组件,所有这些都不会破坏测试。

3. CSS-Modules和Classnames

当笔者开始一个新的React项目时,通常会选择CSS-Modules。create-react-app中内置了支持,很容易上手。

当然,可以通过遵循BEM来避免依赖,但是需要学习如何使用BEM。CSS-Modules提供了可预测的、范围有限的、清晰的CSS。

笔者喜欢将classnames和CSS-Modules一起使用。先看下面这段代码:

constclassName = 'button ' + props.hasError ? 'error' : '';return (  

有了classnames,可以进行简化,然后变成这样:

constButton = props => (   

甚至可以将它与CSS-Modules相结合:

importstyles from './Button.module.css';const Button = props => (   

有作用域,易于编写CSS,就问你香不香!

4. Downshift

也许你会问,为什么要使用外部库来创建像下拉列表或选择输入这样简单的东西呢?

构建一个基于鼠标单击打开或关闭的组件确实非常简单。但与许多前端任务一样,困难的不仅仅是构建组件。

创建一个大量依赖屏幕阅读器的互联网用户可访问和可用的下拉列表不简单,让它在keyboardusers中正常工作并非易事。

到此,相信大家对"React应用程序库有哪些"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

表单 测试 组件 应用程序 程序 应用 用户 笔者 输入 字段 错误 学习 选择 重构 验证 复杂 事情 产品 代码 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 mdf如何导入数据库 2020国内十大网络安全事故 用上位机软件开发车间呼叫系统 网络安全技术接入交换机部署 武林外传初始服务器名称 服务器出差什么意思 pl sql建数据库失败 枣庄ios软件开发解决方案 设备类公司软件开发是什么样的 软件开发人员日常管理方案 天刀手游q3区服务器 网络安全有多少条多少章 芙蓉区软件开发培训学校 网络安全进校园宣传日活动总结 星图网络技术有限公司 安全无忧软件服务器9.0手册 安徽工程大学网络安全教育平台 胶囊网络技术 星际战甲服务器插件 美食大战老鼠2017年服务器 多禾网络技术是做什么的 软件开发设计阶段基本任务是 太原天讯软件开发 外国黑客入侵中国服务器 色彩丰富网络安全手抄报 mac 关闭自动连接服务器 服务器 多个网口 会提升速度吗 青海网络安全宣传周先进集体 小米怎么设置服务器 ogg方式的数据库同步技术
0