简单优雅的JavaScript代码片段(三):合并请求,成批发出

2023-06-05
阅读 6 分钟
1.4k
简单优雅的JavaScript代码片段文章系列:简单优雅的JavaScript代码片段(一):异步控制简单优雅的JavaScript代码片段(二):流控和重试简单优雅的JavaScript代码片段(三):合并请求,成批发出场景说明后端提供的接口具备批量查询能力(比如,同时查询10个资源的详情信息),但是调用者每次只需要请求一个资源的详情...

【代码鉴赏】简单优雅的JavaScript代码片段(二):流控和重试

2021-11-06
阅读 6 分钟
3.5k
后端为了保证系统稳定运行,往往会对调用频率进行限制(比如每人每秒不得超过10次)。为了避免造成资源浪费或者遭受系统惩罚,前端也需要主动限制自己调用API的频率。

数据系统杂谈:React,数据一致性,计算与通信的本质

2021-03-11
阅读 5 分钟
2.6k
揭晓答案:在id变化以后的第一次渲染,useAsync仍会返回上一个id对应的data。这一次渲染产生了两个不一致的数据:新的id和旧的data。

React hooks之痛:低效的变化传播

2020-08-22
阅读 1 分钟
2.4k
不能。React hooks有一个致命的缺陷:数据变化每传播一步就需要等待1轮渲染。如果通过hook来定义计算关系,那么变化的传播会非常低效。

从前端的视角理解数据和缓存

2020-07-13
阅读 4 分钟
3.2k
数据系统是如此的普遍,以至于开发者实际上每天都在设计数据系统,却常常没有意识到它们的普适性,将多个本质相同的问题当作了孤立的问题来理解。应用状态管理、配置管理、用户数据管理问题,本质上都属于数据系统的问题。

【React的作弊模式】理解useReducer的优势和高级用法

2020-06-28
阅读 5 分钟
11.3k
或许你已经知道,“当多个state需要一起更新时,就应该考虑使用useReducer”;或许你也已经听说过,“使用useReducer能够提高应用的性能”。但是篇文章希望帮助你理解:为什么useReducer能提高代码的可读性和性能,以及如何在reducer中读取props的值。

【React性能优化总结】React组件什么时候重新渲染?如何做性能优化?

2020-04-18
阅读 2 分钟
5.8k
过渡期完成以后,函数式组件成为正统的React的开发模型,"component"就用来指代function component,而classes会使用“legacy class components”的方式来指代。未来不会出现“必须使用class组件才能实现”的React行为。

React hooks,组合与抽象,状态管理

2020-03-18
阅读 6 分钟
4.1k
用户可以定义一个状态仓储来容纳被共享的状态。状态仓储可以是一个全局对象,或者是一系列依附于组件树的对象。一般都会形成一个树状的数据结构,同构于应用的功能树。

在React项目中优雅地使用Typescript

2019-09-29
阅读 5 分钟
23.5k
「优雅」的含义: 减少编写冗余的类型定义、类型标注,充分利用ts的自动类型推断,以及外部提供的类型声明。 类型安全:提供足够的类型信息来避免运行时错误,让错误暴露在开发期。这些类型信息同时能够提供代码补全、跳转到定义等功能。 组件定义 函数组件 {代码...} FC是FunctionComponent的缩写。 IProps无需声明chil...

Algebraic Effects,以及它在React中的应用

2019-08-18
阅读 6 分钟
6.9k
Algebraic Effects是一个在编程语言研究领域新兴的机制,虽然目前还没有工业语言实现它,但是在React社区会经常听到关于它的讨论。React最近新特性(Suspense和hooks)的背后实际上是Algebraic Effects的概念。因此,我花了一些时间来了解Algebraic Effects,希望体悟到React团队是如何理解这些新特性的。

React Fiber架构如何从JS引擎手中“夺回”调度权

2019-08-18
阅读 4 分钟
5k
time slicing将渲染工作切分,保证JavaScript的执行不会造成卡顿:如果当前帧的时间片已经用完,React就将控制权交还给浏览器,剩下的工作等到下一帧再做