首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

应该是用 GraphQL 的状态管理最佳选择。 表单处理 Formik 面对现实吧,在 React 中处理表单确实很冗长。...Redux-Form 在每次按键都会多次调用整个顶层 Redux reducer。...不是因为我认为 React 在实现表单方面采取了错误的方法,而是因为在使用 React 表单是最具挑战性的问题。 许多框架都有自己的解决方案来处理表单。AngularJS 在这方面做得非常好。...对于普通的表单来说,它表现得很好,但在多步骤表单方面有些困难。虽然后来他们添加了“向导”表单,但使用起来并不太直观。 此外,Formik 依赖于表单元素,并且在控制 Redux 存储存在一些挑战。...就像写 CSS 一样,很大程度上取决于项目设置和个人偏好。

56230

​Ant Disign 4.0 升级实践扑街指南 (一)

扑街第一步:antd4-codemod 运行 antd4-codemod src 控制台: 出师捷身先死 问题不大, 我们老实人不怕这个。 缺少core-js, 那就装一个。...扑街第二步: Form initialValues 想着今天一定, 至少, 得改完一个页面看看。 就挑了个简单的, 一个Form表单页。 v3 与v4的表单差别还是挺大的。...editors=0011 在官网中, 也找到了这样的描述: 在 v3 版本中,修改操作的字段 initialValue 会同步更新字段值,这是一个 BUG。...initialValue 只有在初始化以及重置表单生效。 所以, initialValue 只能作为组件初次挂载的时候生效。...editors=0010 至此, 第一个页面就改完了。 结尾 后面还有好多个页面需要改,不过我认为这是值得的。 之后还会持续更新, 希望大家都能避开这些点。 图看不清楚的可以阅读原文。

1.4K10

天天用 antd 的 Form 组件?自己手写一个吧

外层 Form 定义 initialValues 初始值,onFinish 当提交的回调,onFinishFailed 当提交有错误时的回调。 Form 组件每天都在用,那它是怎么实现的呢?...这样在 Store 里就存储了所有表单项的值,在 submit 就可以取出来传入 onFinish 回调。...: onChange 回调里设置 value,并且修改 context 里的 values 的值: 这里的 getValueFromEvent 是根据表单项类型来获取 value: 然后是校验 rules...试一下: form 的 initialValues设置表单的值的保存,规则的校验和错误显示,都没问题。 这样,Form 组件的核心功能就完成了。...核心就是一个 Store 来保存表单的值,然后用 Item 组件包裹具体表单设置 value 和 onChange 来同步表单的值。

13710

通过三个实例掌握如何使用 TypeScript 泛型创建可重用的 React 组件

泛型允许你在定义组件不指定具体的数据类型,而是在使用组件再指定具体的类型。这样一来,我们的组件就能够适应多种数据类型,不必为每种数据类型分别创建不同的组件。...二、使用泛型在 React 组件中展示数据 在实际开发中,很多时候我们需要从 API 获取数据并展示在页面上。利用 TypeScript 泛型,我们可以创建一个通用的 React 组件来处理这种情况。...同时,组件还处理了加载和错误状态。 使用 FetchAndDisplay 组件获取和展示帖子 接下来,我们使用 FetchAndDisplay 组件来取取并展示一组帖子数据。...最后,我们使用通用表单组件,并指定具体的表单字段和初始值。...={initialValues} onSubmit={handleSubmit} /> ) } 在这个例子中,如果不使用泛型,你需要为每种类型的表单分别创建一个表单组件

1900

前端元编程——使用注解加速你的前端开发

什么是CRUD页面? CRUD页面无需多言,列表页展示,表单页修改 ……包括API调用, 都是围绕某个数据结构(图中Person)展开,增、删、改、查。...Form表单表单,自然就是字段的name,label,require,validate,以及提交数据的转换。...Formik 使用React Context来提供表单控件所需的各种方法数据,然后借助提供的Field等组件,你可以很方便的封装你的业务表单组件。...效果 上文包含了不少的代码,但是大部头在如何将元数据转换成为页面组件可用的数据,也就是元编程的部分。 而业务页面,7行的Table页面,40行的Form页面,已经非常精简功能完备了。...更易维护的代码: “瘦View“,专注业务, 更纯粹的Model,你可以和redux,mobx配合,甚至,你可以从React,换成Angular) 最后更重要的是,元编程是一个低成本,灵活,渐进的方案。

3.1K20

前端元编程——使用注解加速你的前端开发

什么是CRUD页面? ? CRUD页面无需多言,列表页展示,表单页修改 ……包括API调用, 都是围绕某个数据结构(图中 Person)展开,增、删、改、查。...Form表单表单,自然就是字段的name,label,require,validate,以及提交数据的转换。...Formik 使用React Context来提供表单控件所需的各种方法数据,然后借助提供的Field等组件,你可以很方便的封装你的业务表单组件。...而业务页面,7行的Table页面,40行的Form页面,已经非常精简功能完备了。根据笔者实际项目中估计,可以节省至少40%的代码量。 元编程 vs....更易维护的代码: “瘦View“,专注业务, 更纯粹的Model,你可以和redux,mobx配合,甚至,你可以从React,换成Angular) 最后更重要的是,元编程是一个低成本,灵活,渐进的方案。

3.4K20

百度前端高频react面试题(持续更新中)_2023-02-27

受控组件更新state的流程: 可以通过初始state中设置表单的默认值 每当表单的值发生变化时,调用onChange事件处理器 事件处理器通过事件对象e拿到改变后的状态,并更新组件的state 一旦通过...setState方法更新state,就会触发视图的重新渲染,完成表单组件的更新 受控组件缺陷: 表单元素的值都是由React组件进行管理,当有多个输入框,或者多个这种组件,如果想同时获取到全部的值就必须每个都要编写事件处理函数...(2)非受控组件 如果一个表单组件没有value props(单选和复选按钮对应的是checked props),就可以称为非受控组件。在非受控组件中,可以使用一个ref来从DOM获得表单值。.../reducer'; import thunk from 'redux-thunk' // 设置调试工具 const composeEnhancers = window....,页面就无法加载出来。

2.3K30

Taro 小程序开发大型实战(五):使用 Hooks 版的 Redux 实现应用状态管理(下篇)

接着因为 LoginForm 表单数据要被清除,所以我们将选中图片的按钮又设置为可显示状态。 接着提示登录成功。 清空表单状态。...注意 这里的 console.log 是调试使用的,生产环境中建议删掉。 查看效果 可以看到,在登录状态下,会提示请登录: 在已登录的情况下,发帖子会显示当前登录用户的头像和昵称: 小结 有幸!...在重构 “我的” 页面组件,我们按照 Redux 的思想,从它的底层组件三个登录按钮重构开始,接着重构了 LoggedMine 组件,再往上就是 Header 组件;重构完 Header 组件之后,我们接着从...在重构 “首页” 页面组件,我们同样按照 Redux 的思想,从它的底层组件 PostForm 组件开始,接着是 PostCard 组件,最后再回到顶层组件 index 首页页面组件。...在重构 “帖子详情” 页面组件,因为其底层组件 PostCard 已经重构过了,所以我们就直接重构了 post 帖子详情页面组件。

2K30

美团前端react面试题汇总

页面没使用服务渲染,当请求页面,返回的body里为空,之后执行js将html结构注入到body里,结合css显示出来;SSR的优势:对SEO友好所有的模版、图片等资源都存在服务器端一个html返回所有数据减少.../reducer';import thunk from 'redux-thunk'// 设置调试工具const composeEnhancers = window....当用户提交表单,前面提到的元素的值将随表单一起被发送。...但在 React 中会有些不同,包含表单元素的组件将会在 state 中追踪输入的值,并且每次调用回调函数,如 onChange 会更新 state,重新渲染组件。...存储全局数据,会有一个问题,如果用户刷新了网页,那么通过redux存储的全局数据就会被全部清空,比如登录信息等。

5.1K30

美团前端一面必会react面试题4

受控组件更新state的流程:可以通过初始state中设置表单的默认值每当表单的值发生变化时,调用onChange事件处理器事件处理器通过事件对象e拿到改变后的状态,并更新组件的state一旦通过setState...(2)非受控组件 如果一个表单组件没有value props(单选和复选按钮对应的是checked props),就可以称为非受控组件。在非受控组件中,可以使用一个ref来从DOM获得表单值。...数据放在redux里面在使用 React Router,如何获取当前页面的路由或浏览器中地址栏中的地址?...添加事件this.store.subscribe(this.handleChange),实现页面交互shouldComponentUpdate判断是否有避免进行渲染,提升页面性能,并得到nextState...,页面就无法加载出来。

3K30

【微信小程序】---- redux 在原生微信小程序的使用实例

动态更新 进行页面 Page 和组件 Component 的拦截; 在页面和组件加载,对当前页面 进行订阅 subscribe; 注意页面和组件卸载,需要取消订阅; 不是所有的页面和组件都需要订阅,...页面的订阅和取消订阅 将 store 设置页面的 s t...订阅生成,但是如果不取消,就会一直存在,在修改全局状态,会执行 listeners 中所有的订阅。但是页面卸载后下次进入就会生成新的 id,新的页面,所以需要重新订阅。...} = lifetimes; config.lifetimes = { attached:function(){ // 监听全局状态数据变化 // 设置页面栈变量...总结 由于性能的原因,能够不使用,就尽量不使用; 除非多页面多组件同时使用了该全局状态,同时业务逻辑比较复杂,容易混淆,使用全局状态方便管理,否则不要设置为全局状态; 在订阅优化尽量只执行更新的订阅;

5.6K10

你要的 React 面试知识点,都在这了

及其工作原理 什么是React路由器及其工作原理 什么是错误边界 什么是 Fragments 什么是传送门(Portals) 什么是 Context 什么是 Hooks 如何提高性能 如何在重新加载页面保留数据...当涉及到SPA应用程序时,首次加载index.html,并在index.html本身中加载更新后的数据或另一个html。当用户浏览站点,我们使用新内容更新相同的index.html。...如何在重新加载页面保留数据 单页应用程序首先在DOM中加载index.html,然后在用户浏览页面加载内容,或者从同一index.html中的后端API获取任何数据。...如果通过点击浏览器中的重新加载按钮重新加载页面index.html,整个React应用程序将重新加载,我们将丢失应用程序的状态。 如何保留应用状态?...我们将整个存储数据保存在localstorage中,每当有页面刷新或重新加载,我们从localstorage加载状态。 ?

18.4K20

美团前端二面经典react面试题总结_2023-03-01

在React中页面重新加载怎样保留数据?...这个问题就设计到了数据持久化, 主要的实现方式有以下几种: Redux: 将页面的数据存储在redux中,在重新加载页面,获取Redux中的数据; data.js: 使用webpack构建的项目,可以建一个文件...如果将HTML中的表单元素( input、 select、 textarea等)添加到组件中,当用户与表单发生交互,就涉及表单数据存储问题。...表单如何呈现由表单元素自身决定。 如下所示,表单的值并没有存储在组件的状态中,而是存储在表单元素中,当要修改表单数据,直接输入表单即可。有时也可以获取元素,再手动修改它的值。...当要获取表单数据,要首先获取表单元素,然后通过表单元素获取元素的值。 注意:为了方便在组件中获取表单元素,通常为元素设置ref属性,在组件内部通过refs属性获取对应的DOM元素。

1.4K20

React组件设计实践总结02 - 组件的组织

扩展: Redesigning Redux Cyclejs ---- 5️⃣ 按照 UI 划分为布局组件和内容组件 布局组件用于控制页面的布局,为内容组件提供占位。...状态回显是表单组件的功能之一, 我个人的最佳实践是value应该是自包含的: 比如一个支持搜索的用户选择器, option 都是异步从后端加载, 如果 value 只保存用户 id, 那么回显的时候就无法显示用户名...App/ components/ # App特定的组件库 LoginPage/ # App页面 index.tsx stores.ts # redux...List.Item # 表单容器, 支持设置label Input # 具体表单类型 Address NumberInput...To Scale React Applications Redux 常见问题:代码结构 export default considered harmful JavaScript 模块的循环加载 thinking-in-react

1.9K31

「首席架构师推荐」React生态系统大集合

- 用于React组件样式的工具链 jss - CSS的创作工具 React路由 react-router - React的声明性路由 navi - React的声明性异步路由 curi - 用于单页面应用程序的...react-text-mask - React的输入掩码 react-loading-skeleton - 创建自动适应您的应用程序的骨架屏幕 react-spinkit - 使用CSS为React设置动画的加载指示符集合...接口 react-haskell - Haskell的React绑定 Express React views Express Coffee-React视图 - 在服务器上呈现咖啡React React页面中间件...Simple Forms Winterfell - 在React中生成复杂,经过验证和扩展的基于JSON的表单 Redux-Autoform - 从元数据中动态创建Redux-Forms uniforms...,具有热重新加载,动作重放和可自定义的UI react-router-redux - 保持react-router和redux同步的绑定 redux-form - 使用react-redux保持形状状态的高阶组件

12.3K30
领券