首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

React 组件优化

useReducer 的工作原理与 redux 有些相似,useReducer 返回的数组的第二个参数就像 redux 中的 dispatch,可以派发 action。...使用时需要先下载: npm install formik --save Formik 库可以与 yup 库一块使用,库的作者也推荐搭配使用,yup 是一个用于验证字段的库,它的用法类似于 React 中的...使用 Formik + yup 库实现了验证逻辑与组件的解耦,验证逻辑统一由 yup 管理。 相对于 redux-form 库,我觉得 formik 库更好用一些吧。...redux-form 库比较大,压缩后大小为 22.5KB,而 Formik 库为 12.7KB; 关于 formik 的更多用法,可以参考官网: Formik.js[1] yup.js[2] 参考资料...[1] Formik.js: https://jaredpalmer.com/formik/docs/overview [2] yup.js: https://github.com/jquense/yup

7.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

2023 React 生态系统,以及我的一些吐槽……

它主要由两部分组成: 一个开发服务器,它基于 原生 ES 模块 提供了 丰富的内建功能,如速度快到惊人的 模块热更新(HMR)。...首先,服务器状态具有以下特点: 以你无法控制或拥有的远程位置持久存储 需要使用异步 API 进行获取和更新 暗示共享所有权,并且可能被其他人在你不知情的情况下更改 如果不小心处理,可能会在应用程序中变得...格式化流水线、解析流水线、内置验证,根据状态向元素添加和移除类名...这一切都很棒! 直到你需要做一些不符合 AngularJS 设计思路的事情。...因此,React 做了它最擅长的事情,将实现的工作交给了我们。事实上,这正是我喜欢 React 的原因!然而,相比起将数据传递给 props,处理表单要更具挑战性。...解析数据、格式化、本地状态、prop 的变化...所有这些在 React 中都是挑战。 我之前使用过 Formik,但成果并不太理想。对于普通的表单来说,它表现得很好,但在多步骤表单方面有些困难。

57630

分享 73 个让你事半功倍的 NPM 包

前端框架 1、React 地址:https://www.npmjs.com/package/react React 使用虚拟 DOM 将页面的各个部分作为单独的组件进行管理,允许我们在刷新整个页面的情况下刷新组件...34、Cloudinary 地址:https://www.npmjs.com/package/cloudinary 专用模块可简化云服务的工作,为 Web 应用程序的整个图像管理管道提供解决方案。...表格和电子邮件 42、Formik 地址:https://www.npmjs.com/package/formik Formik 是一个流行的 React 和 React Native 开源表单库。...Cheerio 封装了 Parse5 解析器,能够解析任何类型的 HTML 和 XML 文档。...67、Node-cache 地址:https://www.npmjs.com/package/node-cache 一个简单的缓存模块,具有设置、获取和删除方法,工作方式有点像 memcached。

5.3K20

【译】73个超棒且可提高生产力的 NPM 包

前端框架 1.React[3] React 使用虚拟 DOM 将页面的各个部分作为单独的组件进行管理,从而允许你刷新组件而刷新整个页面。...译者注:看到官方推荐再使用,而是推荐使 nanoid[60] 38.Uuid[61] 方便而且体积小的包,可以快速、轻松地生成更复杂的通用惟一标识符(UUIDs)。...表单和邮件 42.Formik[65] Formik 是 React 和 React Native 的一个流行开源表单库。它具有易于使用、声明性和适应性的特点。...Cheerio 安装了 Parse5 解析器,能够解析任何类型的 HTML 和 XML 文档。...它通过解析代码并使用自己的规则(考虑到最大行的长度)重新打印代码,以及在必要时包装代码,来强制执行一致的样式。 ? 模块打包和压缩器 51.Webpack[74] 一个著名的功能强大的模块打包器。

5.9K30

盘点React开发中不可或缺的工具

useHooks Hooks是 React 中的新增功能,可让我们在编写类的情况下使用状态和其他 React 的功能。...Storybook 是一个强大的前端工作室环境工具,它允许团队设计、构建和组织 UI 组件而不会被业务逻辑和管道绊倒。编写一次story,然后重用它们来支持自动化测试。...Formik 表单处理是网页开发经常会遇到的问题,而Formik是一个可以在React中构建表单的组件。...React Hot Loader React Hot Loader 是一个热重载插件,它允许 React 组件在丢失状态的情况下实时重新加载。...它与支持热模块替换 (HMR) 和 Babel 插件的 Webpack 和其他打包器一起使用。通过使用它,可以让你的开发效率得到大大提升。

1.7K20

73个超棒且可提高生产力的 NPM 包

前端框架 1.React[3] React 使用虚拟 DOM 将页面的各个部分作为单独的组件进行管理,从而允许你刷新组件而刷新整个页面。...译者注:看到官方推荐再使用,而是推荐使 nanoid[60] 38.Uuid[61] 方便而且体积小的包,可以快速、轻松地生成更复杂的通用惟一标识符(UUIDs)。...表单和邮件 42.Formik[65] Formik 是 React 和 React Native 的一个流行开源表单库。它具有易于使用、声明性和适应性的特点。...Cheerio 安装了 Parse5 解析器,能够解析任何类型的 HTML 和 XML 文档。...它通过解析代码并使用自己的规则(考虑到最大行的长度)重新打印代码,以及在必要时包装代码,来强制执行一致的样式。 ? 模块打包和压缩器 51.Webpack[74] 一个著名的功能强大的模块打包器。

4.5K20

Python 3.7 新特性概览(附实例

favourite_ic 应该声明为字符串,这可以说是 Python 的动态类型的危险之一 —— 在运行时之前无法捕捉到这个错误。...要实现上述行为,必须导入 __future__,因为在保持与以前版本兼容的情况下无法进行此更改。...Dataclass 使用字段 (field) 来完成它们的工作,手动构造一个 field() 函数能够访问其他选项,从而更改默认值。...dataclass, field class User: name: str = field(default_factory=lambda: input("enter name")) (我们建议直接将...对模块属性访问的控制现在更容易了,因为 __getattr__ 现在可以在模块层次进行定义。这使得定制导入行为和实现特性,例如弃用警告,变得更加容易。 CPython 的一种新的开发模式。

78730

ES6中也要使用好严格的代码规范,助力你写出优雅的代码

const 对象 数组 函数 const foo = [1, 2, 3, 10]; const bar = foo; bar[0] = 90000; 优先使用模板字符串,静态字符串一律使用单引号或反引号,建议使用双引号..., right } = processInput(input); 解构语句中统一不使用圆括号 // bad [(a)] = [11]; // a未定义 let { a: (b) } = {}; // 解析出错...浏览器允许你这么做,但是它们解析不同注:ECMA-262 把 块 定义为一组语句,函数声明不是一个语句。....'); } } // good if (currentUser) { var test = function test() { console.log('Yup.'); }; }..._queue[0]; } } 复制代码 模块 总是在非标准的模块系统中使用标准的 import 和 export 语法,我们总是可以将标准的模块语法转换成支持特定模块加载器的语法。

71830

2020 年你应该知道的 React 库

如果您只是想了解这些初学者工具包是如何工作的,那么可以尝试从头开始设置 React 项目。你将从一个基本的 HTML 和 JavaScript 项目开始,然后自己添加 React 和它的支持工具。...CSS Modules 受到 create-react-app 的支持,并为您提供了将 CSS 封装到模块中的方法。这样,它就不会意外地泄漏到其他人的样式中。...以下是一些流行的解决方案: nivo Victory react-vis Recharts Chart Parts React 中的表单库 在 React 中最流行的表单库是 Formik。...建议: Formik React Hook Form React 中的数据获取库 很快,您就必须向远程 API 发出请求,以便在 React 中获取数据。...快照测试的工作方式如下: 运行测试之后,将创建 React 组件中渲染的 DOM 元素的快照。当您在某个时间点再次运行测试时,将创建另一个快照,用作前一个快照的差异。

14.4K40

前端又开撕了:用Rust写的Turbopack,比Vite快10倍?

Github 软件工程总监 Chiedo John 曾对媒体表示“Vercel 进行的一些革命性的工作,极大地改善了开发人员的开发方式。”...有资金支持的 Vercel,最近聘请了一些 JavaScript 界的知名人士——例如 Tobias Koppers(Webpack 的创建者)、Jared Palmer(Formik 和 Turborepo...Turbopack 是 Vercel 公司之前一些工作的延续。在此之前,他们用基于 Rust 的 SWC 替换基于 JavaScript 的转译器 Babel,速度提升了 17 倍。...增量方法意味着避免做重复的工作,“如果你创建一个增量图,开发人员在其中进行更改,只有受影响的图部分会被重新计算。”...随着模块数量的增加,这个效果更好,显示 50k 模块以上的速度提高了 20 倍。

98340
领券