Use a better example for Effect hook
還沒有人認領這個 Issue。
- 主要語言
- JavaScript
- 星號
- 11.8k
- 分支
- 7.9k
- 平均合併
- 1 天 11 小時
- 30 天內合併 PR
- 11
描述
The following example is used in:
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
// Similar to componentDidMount and componentDidUpdate:
useEffect(() => {
// Update the document title using the browser API
document.title = `You clicked ${count} times`;
});
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
This example creates confusion because the example doesn't actually need useEffect to operate correctly.
If you set document.title outside of the useEffect, the app behaves exactly the same.
Suggested changes
-
Use an example which would not work correctly if it wasn't placed in a
useEffect. It should be something that depends on the DOM having been updated. Maybe setting thedocument.titleto adocument.getElementByIdor something like that. This would also be a contrived/useless example. Something practical would be better. -
Show the lifecycle of useEffect early. I was most interested in the lifecycle of when this method is called. In Dan's recent blog post on effects, this is the first thing that is covered, and it should be the same for these docs.
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
先從 hooks-overview.html#effect-hook 和 hooks-effect.html 中的 Effect Hook 範例開始,然後將目前的範例與參考文件中的生命週期討論進行比較。以一個能說明為什麼需要 useEffect 的範例取代令人困惑的範例,並更早介紹其生命週期;完成的標準是兩個頁面都能一致地說明其行為,並展示改進後的範例。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- javascript, react
- 領域
- documentation
- Issue 類型
- 文件
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 42/100