diff --git a/src/content/learn/synchronizing-with-effects.md b/src/content/learn/synchronizing-with-effects.md index 1fee772c24..5b1c09bd6e 100644 --- a/src/content/learn/synchronizing-with-effects.md +++ b/src/content/learn/synchronizing-with-effects.md @@ -728,7 +728,7 @@ function TodoList() { - **Effect 不会在服务端运行**。这意味着最初由服务器渲染的 HTML 只会包含加载状态,而没有实际数据。客户端必须先下载所有的 JavaScript 并渲染应用,才会发现它需要加载数据——这并不高效。 - **直接在 Effect 中进行数据请求,容易产生“网络瀑布(network waterfall)”**。首先父组件渲染时请求一些数据,随后渲染子组件,接着子组件开始请求它们的数据。如果网络速度不快,这种方式会比并行获取所有数据慢得多。 - **直接在 Effect 中进行数据请求往往无法预加载或缓存数据**。例如,如果组件卸载后重新挂载,它必须重新获取数据。 -- **不够简洁**。编写 fecth 请求时为了避免 [竞态条件(race condition)](https://maxrozen.com/race-conditions-fetching-data-react-with-useeffect) 等问题,会需要很多样板代码。 +- **不够简洁**。编写 fetch 请求时为了避免 [竞态条件(race condition)](https://maxrozen.com/race-conditions-fetching-data-react-with-useeffect) 等问题,会需要很多样板代码。 这些弊端并不仅限于 React。任何库在组件挂载时进行数据获取都会遇到这些问题。与路由处理一样,要做好数据获取并非易事,因此我们推荐以下方法: