useOptimistic¶
Canary
Хук useOptimistic
в настоящее время доступен только в Canary и экспериментальных каналах React.
useOptimistic
- это React хук, позволяющий "оптимистично" обновлять пользовательский интерфейс.
1 2 3 4 |
|
Описание¶
useOptimistic(state, updateFn)
¶
useOptimistic
- это React хук, который позволяет показывать другое состояние во время выполнения асинхронного действия. Он принимает некоторое состояние в качестве аргумента и возвращает копию этого состояния, которая может быть разной в течение всего времени выполнения асинхронного действия, например, сетевого запроса. Вы предоставляете функцию, которая принимает текущее состояние и входные данные для действия и возвращает оптимистичное состояние, которое будет использоваться, пока действие находится в процессе выполнения.
Это состояние называется "оптимистичным", потому что оно обычно используется для немедленного представления пользователю результата выполнения действия, даже если на его выполнение требуется время.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Параметры¶
state
: значение, которое будет возвращаться изначально и всякий раз, когда никаких действий не ожидается.updateFn(currentState, optimisticValue)
: функция, которая принимает текущее состояние и оптимистическое значение, переданное вaddOptimistic
, и возвращает полученное оптимистическое состояние. Это должна быть чистая функция.updateFn
принимает два параметра. ЭтоcurrentState
иoptimisticValue
. Возвращаемое значение будет представлять собой объединенное значениеcurrentState
иoptimisticValue
.
Возвращаемое значение¶
optimisticState
: Результирующее оптимистичное состояние. Оно равноstate
, если только действие не ожидается, в этом случае оно равно значению, возвращаемомуupdateFn
.addOptimistic
:addOptimistic
- это диспетчерская функция, которую следует вызывать при оптимистическом обновлении. Она принимает один аргумент,optimisticValue
, любого типа, и вызываетupdateFn
сstate
иoptimisticValue
.
Использование¶
Оптимистическое обновление форм¶
Хук useOptimistic
предоставляет возможность оптимистично обновлять пользовательский интерфейс до завершения фоновой операции, например, сетевого запроса. В контексте форм эта техника помогает сделать приложения более отзывчивыми. Когда пользователь отправляет форму, вместо того чтобы ждать, пока ответ сервера отразит изменения, интерфейс сразу же обновляется с ожидаемым результатом.
Например, когда пользователь вводит сообщение в форму и нажимает кнопку "Отправить", хук useOptimistic
позволяет сообщению сразу же появиться в списке с надписью "Отправка...", еще до того, как оно будет отправлено на сервер. Такой "оптимистичный" подход создает впечатление скорости и оперативности. Затем форма пытается действительно отправить сообщение в фоновом режиме. Как только сервер подтверждает, что сообщение получено, метка "Отправка..." удаляется.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
1 2 3 4 |
|
Источник — https://react.dev/reference/react/useOptimistic