You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/content/reference/react/useDeferredValue.md
+5-17Lines changed: 5 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,37 +36,25 @@ function SearchPage() {
36
36
37
37
#### Параметры {/*parameters*/}
38
38
39
-
<<<<<<< HEAD
40
39
*`value`: Значение, обновление которого вы хотите отложить.
41
-
=======
42
-
*`value`: The value you want to defer. It can have any type.
43
-
* <CanaryBadgetitle="This feature is only available in the Canary channel" /> **optional**`initialValue`: A value to use during the initial render of a component. If this option is omitted, `useDeferredValue` will not defer during the initial render, because there's no previous version of `value` that it can render instead.
40
+
* <CanaryBadgetitle="Эта функциональность доступна только в canary-версии" /> **optional**`initialValue`: Значение, установленное для первого рендера. Если этот параметр опущен, `useDeferredValue` не сработает для первого рендера, так как нет предыдущей версии `value`, которую можно было бы показать.
44
41
45
-
>>>>>>> 556063bdce0ed00f29824bc628f79dac0a4be9f4
46
42
47
43
#### Возвращаемое значение {/*returns*/}
48
44
49
-
<<<<<<< HEAD
50
-
При первом рендеринге вызов вернёт то же значение, которое вы указали. Когда в следующих обновлениях значение изменится, вызов вернёт прошлое значение, но при этом React запустит дополнительный фоновый рендеринг, в котором вызов вернёт обновлённое значение.
51
-
=======
52
-
-`currentValue`: During the initial render, the returned deferred value will be the same as the value you provided. During updates, React will first attempt a re-render with the old value (so it will return the old value), and then try another re-render in the background with the new value (so it will return the updated value).
45
+
-`currentValue`: При первом рендеринге вызов вернёт то же значение, которое вы указали. Когда в следующих обновлениях значение изменится, вызов вернёт прошлое значение, но при этом React запустит дополнительный фоновый рендеринг, в котором вызов вернёт обновлённое значение.
53
46
54
47
<Canary>
55
48
56
-
In the latest React Canary versions, `useDeferredValue`returns the `initialValue`on initial render, and schedules a re-render in the background with the`value` returned.
49
+
В последних canary-версиях React, `useDeferredValue`возвращает `initialValue`для первого рендера, и в фоновом режиме планирует последующий рендер уже с`value`.
57
50
58
51
</Canary>
59
-
>>>>>>> 556063bdce0ed00f29824bc628f79dac0a4be9f4
60
52
61
53
#### Замечания {/*caveats*/}
62
54
63
-
<<<<<<< HEAD
64
-
- Значения, которые вы передаёте в `useDeferredValue`, должны либо быть примитивного типа (как, например, строки или числа), либо должны создаваться **не** во время рендеринга. Если вы будете во время рендеринга каждый раз передавать в `useDeferredValue` свеже созданный объект, то так вы будете постоянно запускать ненужный фоновый рендеринг.
65
-
=======
66
-
- When an update is inside a Transition, `useDeferredValue` always returns the new `value` and does not spawn a deferred render, since the update is already deferred.
55
+
- Когда обновление происходит внутри перехода (Transition), оно уже отложено, поэтому `useDeferredValue` всегда возвращает новое значение `value` и не приводит к повторному рендеру.
67
56
68
-
- The values you pass to `useDeferredValue` should either be primitive values (like strings and numbers) or objects created outside of rendering. If you create a new object during rendering and immediately pass it to `useDeferredValue`, it will be different on every render, causing unnecessary background re-renders.
69
-
>>>>>>> 556063bdce0ed00f29824bc628f79dac0a4be9f4
57
+
- Значения, которые вы передаёте в `useDeferredValue`, должны либо быть примитивного типа (как, например, строки или числа), либо должны создаваться **не** во время рендеринга. Если вы будете во время рендеринга каждый раз передавать в `useDeferredValue` свеже созданный объект, то так вы будете постоянно запускать ненужный фоновый рендеринг.
70
58
71
59
- Когда `useDeferredValue` получит другое значение (сравниваться будет через [`Object.is`](https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/is)), помимо текущего рендеринга (в котором хук вернёт старое значение), дополнительно в фоне запустится рендеринг для собственно нового значения. Но этот фоновый рендеринг может прерваться: если значение параметра `value` изменится ещё раз, то React перезапустит фоновый рендеринг заново. Например, если пользователь будет печатать быстрее, чем зависящий от ввода график будет успевать в фоне рендерить предыдущий ввод -- график в таком случае обновится, только когда пользователь перестанет печатать.
0 commit comments