Skip to content

Commit b5e532f

Browse files
committed
doc: translate useEffect / useLayoutEffect
1 parent fd05be3 commit b5e532f

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

โ€ŽREADME.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,3 +346,43 @@ export function reducer: Reducer<AppState, Action>() {}
346346
```
347347

348348
</details>
349+
350+
#### useEffect / useLayoutEffect
351+
352+
`userEffect`์™€ `userLayoutEffect` ๋‘˜ ๋‹ค <b>side effect</b>๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๊ณ  ์„ ํƒ์ ์œผ๋กœ cleanup function์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งŒ์•ฝ ์ด hook๋“ค์ด ๋ฐ˜ํ™˜ ๊ฐ’์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด, type์ด ํ•„์š” ์—†๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค. `useEffect`๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ํ•จ์ˆ˜ ๋˜๋Š” `undefined` ์ด์™ธ์˜ ๋‹ค๋ฅธ ๊ฒƒ์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•˜์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด TypeScript์™€ React๋Š” ๋‹น์‹ ์—๊ฒŒ ๋น„๋ช…์„ ์ง€๋ฅผ๊ฒƒ์ž…๋‹ˆ๋‹ค. Arros functions๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์ด ๋ฌธ์ œ๋Š” ๋‹ค์†Œ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :
353+
354+
```ts
355+
function DelayedEffect(props: { timerMs: number }) {
356+
const { timerMs } = props;
357+
358+
useEffect(
359+
() =>
360+
setTimeout(() => {
361+
/* do stuff */
362+
}, timerMs),
363+
[timerMs]
364+
);
365+
// ๋‚˜์œ ์˜ˆ์‹œ! setTimeout์€ ์•”๋ฌต์ ์œผ๋กœ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
366+
// arrow function์˜ body๊ฐ€ ์ค‘๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์ง€์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
367+
return null;
368+
}
369+
```
370+
371+
<details>
372+
<summary><b>์œ„ ์˜ˆ์‹œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…</b></summary>
373+
374+
```tsx
375+
function DelayedEffect(props: { timerMs: number }) {
376+
const { timerMs } = props;
377+
378+
useEffect(() => {
379+
setTimeout(() => {
380+
/* do stuff */
381+
}, timerMs);
382+
}, [timerMs]);
383+
// ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•; ํ™•์‹คํ•˜๊ฒŒ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ void keyword๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
384+
return null;
385+
}
386+
```
387+
388+
</details>

0 commit comments

Comments
ย (0)