Skip to content

Commit fdda9b9

Browse files
committed
Внесено зміни від редактора в useEffectEvent.
1 parent 5f8d5de commit fdda9b9

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/content/reference/react/useEffectEvent.md

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: useEffectEvent
44

55
<Intro>
66

7-
`useEffectEvent` — це хук React, який дає змогу винести **нереактивну логіку** з ваших ефектів у функцію, яку можна використовувати повторно, — так звану [**Подію ефекту**](/learn/separating-events-from-effects#declaring-an-effect-event).
7+
`useEffectEvent` — це хук React, який дає змогу винести **нереактивну логіку** з ваших ефектів у функцію, яку можна використовувати повторно, — так звану [**подію ефекту**](/learn/separating-events-from-effects#declaring-an-effect-event).
88

99
```js
1010
const onSomething = useEffectEvent(callback)
@@ -14,15 +14,17 @@ const onSomething = useEffectEvent(callback)
1414

1515
<InlineToc />
1616

17-
## Довідка {/*reference*/}
17+
## Опис {/*reference*/}
1818

1919
### `useEffectEvent(callback)` {/*useeffectevent*/}
2020

21-
Викликайте `useEffectEvent` на верхньому рівні вашого компонента, щоб оголосити Подію ефекту. Події ефекту — це функції, які ви можете викликати всередині ефектів, таких як `useEffect`:
21+
Викликайте `useEffectEvent` на верхньому рівні вашого компонента, щоб оголосити подію ефекту. Події ефекту — це функції, які ви можете викликати всередині ефектів, як-от `useEffect`:
2222

2323
```js {4-6,11}
2424
import { useEffectEvent, useEffect } from 'react';
2525

26+
showNotification('Під'єднано!', theme);
27+
2628
function ChatRoom({ roomId, theme }) {
2729
const onConnected = useEffectEvent(() => {
2830
showNotification('Connected!', theme);
@@ -41,19 +43,19 @@ function ChatRoom({ roomId, theme }) {
4143
}
4244
```
4345
44-
[Дивіться більше прикладів нижче.](#usage)
46+
[Перегляньте більше прикладів нижче.](#usage)
4547
4648
#### Параметри {/*parameters*/}
4749
48-
- `callback`: Функція, що містить логіку для вашої Події ефекту. Коли ви визначаєте Подію ефекту за допомогою `useEffectEvent`, `callback` **завжди** матиме доступ до **найновіших** значень із пропсів і стану, коли він викликається. Це допомагає уникнути проблем із "застарілими замиканнями" (stale closures).
50+
- `callback`: Функція, що містить логіку для вашої події ефекту. Коли ви визначаєте подію ефекту за допомогою `useEffectEvent`, `callback` **завжди** матиме доступ до **найновіших** значень із пропсів і стану, коли він викликається. Це допомагає уникнути проблем із "застарілими замиканнями" (stale closures).
4951
50-
#### Повертає {/*returns*/}
52+
#### Результат {/*returns*/}
5153
52-
Повертає функцію Події ефекту. Ви можете викликати цю функцію всередині `useEffect`, `useLayoutEffect` або `useInsertionEffect`.
54+
Повертає функцію події ефекту. Ви можете викликати цю функцію всередині `useEffect`, `useLayoutEffect` або `useInsertionEffect`.
5355
5456
#### Застереження {/*caveats*/}
5557
56-
- **Викликайте лише всередині ефектів:** Події ефекту слід викликати лише в ефектах. Визначайте їх безпосередньо перед ефектом, який їх використовує. Не передавайте їх іншим компонентам або хукам. Лінтер [`eslint-plugin-react-hooks`](/reference/eslint-plugin-react-hooks) (версія 6.1.1 або вище) забезпечить дотримання цього обмеження, щоб запобігти виклику Подій ефекту в неправильному контексті.
58+
- **Викликайте лише всередині ефектів:** події ефекту слід викликати лише в ефектах. Визначайте їх безпосередньо перед ефектом, який їх використовує. Не передавайте їх іншим компонентам або хукам. Лінтер [`eslint-plugin-react-hooks`](/reference/eslint-plugin-react-hooks) (версія 6.1.1 або вище) забезпечить дотримання цього обмеження, щоб запобігти виклику подій ефекту в неправильному контексті.
5759
- **Це не скорочення для залежностей:** Не використовуйте `useEffectEvent`, щоб уникнути зазначення залежностей у масиві залежностей вашого ефекту. Це може приховати помилки та ускладнити розуміння вашого коду. Віддайте перевагу явним залежностям або використовуйте refs для порівняння попередніх значень, якщо це необхідно.
5860
- **Використовуйте для нереактивної логіки:** Використовуйте `useEffectEvent` лише для винесення логіки, яка **не залежить** від зміни значень.
5961
@@ -63,11 +65,11 @@ ___
6365
6466
### Зчитування найновіших пропсів і стану {/*reading-the-latest-props-and-state*/}
6567
66-
Зазвичай, коли ви отримуєте доступ до реактивного значення всередині ефекту, ви повинні включити його до масиву залежностей. Це гарантує, що ваш ефект знову запуститься, коли це значення зміниться, що зазвичай є бажаною поведінкою.
68+
Типово, коли ви використуєте реактивне значення всередині ефекту, ви повинні додати його до масиву залежностей. Це гарантує, що ваш ефект виконуватиметься щоразу, як це значення змінюється, що зазвичай є бажаною поведінкою.
6769
68-
Але в деяких випадках ви можете захотіти прочитати найновіші пропси або стан всередині ефекту, не викликаючи повторного запуску ефекту при зміні цих значень.
70+
Але інколи ви можете захотіти прочитати найновіші пропси або стан всередині ефекту, не cпричиняючи його повторне виконання після зміни цих значень.
6971
70-
Щоб [прочитати найновіші пропси або стан](/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events) у вашому ефекті, не роблячи ці значення реактивними, включіть їх у Подію ефекту.
72+
Щоб [прочитати найновіші пропси або стан](/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events) у вашому ефекті, не роблячи ці значення реактивними, додайте їх у подію ефекту.
7173
7274
```js {7-9,12}
7375
import { useEffect, useContext, useEffectEvent } from 'react';
@@ -88,6 +90,6 @@ function Page({ url }) {
8890
}
8991
```
9092
91-
У цьому прикладі ефект повинен повторно запуститися після рендерингу, коли змінюється `url` (щоб зафіксувати відвідування нової сторінки), але він **не** повинен повторно запускатися, коли змінюється `numberOfItems`. Загорнувши логіку логування в Подію ефекту, `numberOfItems` стає **нереактивним**. Він завжди береться з найновішого значення без запуску ефекту.
93+
У цьому прикладі ефект повинен повторно запуститися після рендерингу, коли змінюється `url` (щоб зафіксувати відвідування нової сторінки), але він **не** повинен повторно запускатися, коли змінюється `numberOfItems`. Загорнувши логіку логування в подію ефекту, `numberOfItems` стає **нереактивним**. Він завжди береться з найновішого значення без запуску ефекту.
9294
93-
Ви можете передати реактивні значення, як-от `url`, як аргументи до Події ефекту, щоб зберегти їх реактивними, отримуючи доступ до найновіших нереактивних значень всередині події.
95+
Ви можете передати реактивні значення, як-от `url`, як аргументи до події ефекту, щоб зберегти їх реактивними, отримуючи доступ до найновіших нереактивних значень всередині події.

0 commit comments

Comments
 (0)