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