Next.js · Middle · Запитання 14 з 75
Як уникнути подвійного запиту до БД, якщо getUser(id) викликають і generateMetadata, і сторінка?
- ✓Правильна відповідь: Обгорнути функцію в
cache()з React - дедуплікація в межах одного запиту - 2Зберегти користувача в глобальну змінну модуля на сервері
- 3Передати дані з
generateMetadataу сторінку через її props
Пояснення
cache() мемоізує виклики з однаковими аргументами на час одного серверного рендеру. fetch з однаковими параметрами Next.js дедуплікує сам, а для ORM і SDK потрібен cache(). Глобальна змінна змішає дані різних користувачів.