
Откройте для себя увлекательный мир хука useOptimistic, продвинутого инструмента, который позволяет легко внедрять оптимистичные обновления в ваше приложение. Используя эту функцию, ваше приложение может обеспечить удивительно отзывчивый пользовательский интерфейс, повышая его общую производительность. Оптимистичные обновления — это мощная техника, позволяющая пользователям видеть немедленные изменения, благодаря чему приложение выглядит более интерактивным и привлекательным. Воспользуйтесь этим передовым подходом, чтобы повысить производительность вашего приложения и поразить своих пользователей более плавным и интерактивным интерфейсом!
Давайте погрузимся прямо в часть кодирования! К концу этого урока у вас должна быть структура папок, подобная приведенной ниже:

Во-первых, мы собираемся создать API и серверные действия. Если вы не знаете, что такое серверные действия, вы можете узнать о них больше здесь: https://medium.com/@sener3/unleashing-next-js-13-revolutionizing-server-side-processing-with-server -действия-23dc2adf62bf
Давайте создадим два маршрута API — один для получения значения счетчика, а другой — для значения оптимистичного счетчика:
import db from "@/lib/db";
import { NextResponse } from "next/server";
const COUNTER_ID = /* insert your counter id here */;
export async function GET() {
const counter = await db.counter.findUnique({
where: {
id: COUNTER_ID,
},
});
return NextResponse.json({
value: counter?.value,
});
}
import db from "@/lib/db";
import { NextResponse } from "next/server";
const OPTIMISTIC_COUNTER_ID = /* insert your optimistic counter id here */ ;
export async function GET() {
const counter = await db.counter.findUnique({
where: {
id: OPTIMISTIC_COUNTER_ID,
},
});
return NextResponse.json({
value: counter?.value,
});
}
Далее давайте создадим действия сервера для увеличения значений счетчика:
"use server";
import db from "@/lib/db";
import { revalidateTag } from "next/cache";
const COUNTER_ID = /* insert your id here */;
const…