在 Next.js 中,有效管理页面和组件之间的数据至关重要。但是,应遵循某些实践以确保良好的编码实践和 SEO 合规性。本文解决了在 getServerSideProps() 中执行内部 API 获取的问题。
与之前的理解相反,Next.js 文档建议不要使用 fetch( ) 在 getServerSideProps() 中调用内部 API 路由。相反,它建议将逻辑从 API 路由直接转移到 getServerSideProps() 中。这消除了不必要的额外请求,因为 getServerSideProps() 和 API 路由都在服务器上执行。
将获取逻辑与 API 路由分离不仅可以重用它在 API 路由本身中以及 getServerSideProps() 中。这种方法简化了代码库管理并增强了灵活性。
缓存在提高性能方面发挥着至关重要的作用。使用 SWR 等技术进行客户端缓存非常简单。然而,在服务器上实现缓存需要不同的方法。一种技术是直接在 getServerSideProps() 中实现缓存逻辑,利用 Redis 或 Memcached 等服务器端缓存机制。
考虑以下示例:
// pages/api/user.js export async function getData() { const response = await fetch(/* external API endpoint */); const jsonData = await response.json(); return jsonData; } export default async function handler(req, res) { const jsonData = await getData(); res.status(200).json(jsonData); }
在本例中,封装了获取逻辑的 getData() 函数既可以在 API 路由处理程序中使用,也可以在 getServerSideProps() 中使用。这可以实现更清晰的代码和高效的数据采集。
以上是如何在 Next.js 的 getServerSideProps() 中获取内部 API 并实现缓存?的详细内容。更多信息请关注PHP中文网其他相关文章!