Skip to content

Commit bcaccbe

Browse files
committed
fixed issues
1 parent 1f04c7f commit bcaccbe

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

src/content/reference/react/useImperativeHandle.md

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

55
<Intro>
66

7-
`useImperativeHandle` це хук, який дозволяє кастомізувати об'єкт, який повертається через [реф.](/learn/manipulating-the-dom-with-refs)
7+
`useImperativeHandle` це хук, який дає змогу налаштовувати дескриптор (handle) публічно доступного [рефа.](/learn/manipulating-the-dom-with-refs)
88

99
```js
1010
useImperativeHandle(ref, createHandle, dependencies?)
@@ -20,7 +20,7 @@ useImperativeHandle(ref, createHandle, dependencies?)
2020
2121
### `useImperativeHandle(ref, createHandle, dependencies?)` {/*useimperativehandle*/}
2222
23-
Викличте `useImperativeHandle` на верхньому рівні вашого компонента, щоб кастомізувати об'єкт посилання, який повертає реф:
23+
Викличте `useImperativeHandle` на верхньому рівні вашого компонента, щоб налаштувати дескриптор рефа, доступного з нього:
2424
2525
```js
2626
import { useImperativeHandle } from 'react';
@@ -38,11 +38,11 @@ function MyInput({ ref }) {
3838
3939
#### Параметри {/*parameters*/}
4040
41-
* `ref`: `Реф`, який ви отримали як проп у компоненті `MyInput`.
41+
* `ref`: `ref`, який ви отримали як проп у компоненті `MyInput`.
4242
43-
* `createHandle`: Функція, яка не приймає аргументів і повертає об'єкт посилання, який ви хочете надати. Цей об’єкт може бути будь-якого типу. Зазвичай, ви повертатимете об'єкт з методами, які ви захочете використовувати.
43+
* `createHandle`: Функція, яка не приймає аргументів і повертає дескриптор рефа, до якого ви хочете надати доступ. Дескриптор може бути будь-якого типу. Зазвичай, ви повертатимете об'єкт із методами, до яких ви хочете надати доступ.
4444
45-
* **Опціональний параметр** `dependencies`: Список усіх реактивних значень, на які посилається код `createHandle`. Реактивні значення включають в себе пропси, стан та всі змінні та функції, оголошені безпосередньо в тілі компонента. Якщо ваш лінтер [налаштований для Реакту](/learn/editor-setup#linting), він перевірить, чи кожне реактивне значення вказане як залежність. Список залежностей повинен містити стале число елементів, записаних в рядок як `[залежність1, залежність2, залежність3]`. Реакт порівняє кожну залежність із своїм попереднім значенням використовуючи порівняння [`Object.is`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). Якщо повторний рендер призвів до зміни однієї із залежностей або якщо ви пропустили даний аргумент, ваша `createHandle` функція буде виконана повторно і новостворений об'єкт посилання буде призначений до рефу.
45+
* **Опційний параметр** `dependencies`: Список усіх реактивних значень, на які посилається код `createHandle`. Реактивні значення охоплюють пропси, стан і всі змінні та функції, оголошені безпосередньо в тілі компонента. Якщо ваш лінтер [налаштований для React](/learn/editor-setup#linting), він перевірить, чи кожне реактивне значення вказане як залежність. Список залежностей повинен містити стале число елементів, записаних у рядок як `[залежність1, залежність2, залежність3]`. React порівняє кожну залежність із своїм попереднім значенням, використовуючи функцію [`Object.is`](https://webdoky.org/uk/docs/Web/JavaScript/Reference/Global_Objects/Object/is). Якщо повторний рендер призвів до зміни однієї із залежностей або якщо ви пропустили даний аргумент, ваша функція `createHandle` виконуватиметься повторно, і новостворений дескриптор буде призначений рефу.
4646
4747
<Note>
4848
@@ -128,9 +128,9 @@ export default function Form() {
128128

129129
return (
130130
<form>
131-
<MyInput placeholder="Enter your name" ref={ref} />
131+
<MyInput placeholder="Введіть ваше ім'я" ref={ref} />
132132
<button type="button" onClick={handleClick}>
133-
Edit
133+
Змінити
134134
</button>
135135
</form>
136136
);
@@ -170,9 +170,9 @@ input {
170170
171171
---
172172
173-
### Передавання власних імперативних методів {/*exposing-your-own-imperative-methods*/}
173+
### Надання доступу до власних імперативних методів {/*exposing-your-own-imperative-methods*/}
174174
175-
Методи, які ви передаєте через імперативний обробник не обов'язково мають точно відповідати DOM методам. Наприклад, даний компонент `Post` передає метод `scrollAndFocusAddComment` через імперативний обробник. Це дозволяє батьківському компоненту `Page` гортати список коментарів *і* фокусуватись на полі введення, коли ви натискаєте кнопку:
175+
Методи, які ви передаєте через імперативний дескриптор, не обов'язково мають точно збігатися з DOM методами. Наприклад, цей компонент `Post` передає метод `scrollAndFocusAddComment` через дескриптор. Це дає батьківському компоненту `Page` змогу прогорнути список коментарів *і* фокусувати поле введення, коли ви натискаєте кнопку:
176176
177177
<Sandpack>
178178
@@ -190,7 +190,7 @@ export default function Page() {
190190
return (
191191
<>
192192
<button onClick={handleClick}>
193-
Write a comment
193+
Написати коментар
194194
</button>
195195
<Post ref={postRef} />
196196
</>
@@ -219,7 +219,7 @@ function Post({ ref }) {
219219
return (
220220
<>
221221
<article>
222-
<p>Welcome to my blog!</p>
222+
<p>Вітаю на моєму блозі!</p>
223223
</article>
224224
<CommentList ref={commentsRef} />
225225
<AddComment ref={addCommentRef} />
@@ -248,7 +248,7 @@ function CommentList({ ref }) {
248248

249249
let comments = [];
250250
for (let i = 0; i < 50; i++) {
251-
comments.push(<p key={i}>Comment #{i}</p>);
251+
comments.push(<p key={i}>Коментар #{i}</p>);
252252
}
253253

254254
return (
@@ -265,7 +265,7 @@ export default CommentList;
265265
import { useRef, useImperativeHandle } from 'react';
266266

267267
function AddComment({ ref }) {
268-
return <input placeholder="Add comment..." ref={ref} />;
268+
return <input placeholder="Додати коментар..." ref={ref} />;
269269
}
270270

271271
export default AddComment;
@@ -285,8 +285,8 @@ export default AddComment;
285285
286286
<Pitfall>
287287
288-
**Не зловживайте рефами.** Використовуйте рефи лише для *імперативної* поведінки, яку ви не можете виразити через пропси: наприклад, пролистування до вузла DOM, фокусування на вузлі, виклик анімації, виділення тексту тощо.
288+
**Не зловживайте рефами.** Використовуйте рефи лише для *імперативної* поведінки, яку ви не можете виразити через пропси: наприклад, прогортування до вузла DOM, фокусування вузла, виклик анімації, виділення тексту тощо.
289289
290-
**Якщо ви можете виразити щось як проп, тоді не варто використовувати реф.** Наприклад, замість передачі імперативного обробника у вигляді `{ open, close }` з компоненту `Modal`, кращим підходом буде використати проп `isOpen` у такому вигляді `<Modal isOpen={isOpen} />`. [Effects](/learn/synchronizing-with-effects) може допомогти вам задавати імперативну поведінку через пропси.
290+
**Якщо ви можете виразити щось як проп, тоді не варто використовувати реф.** Наприклад, замість передавання імперативного дескриптора як `{ open, close }` із компонента `Modal`, краще використати проп `isOpen` як `<Modal isOpen={isOpen} />`. [Ефекти](/learn/synchronizing-with-effects) можуть допомогти вам надати доступ до імперативних частин через пропси.
291291
292292
</Pitfall>

0 commit comments

Comments
 (0)