首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nextjs getServerSideProps vs API

nextjs getServerSideProps vs API
EN

Stack Overflow用户
提问于 2022-08-16 19:57:02
回答 1查看 75关注 0票数 -1

我正在尝试理解getServerSideProps与仅在页面组件中使用useSWR之间的主要区别。如果我在getServerSideProps中运行这样的程序:

代码语言:javascript
复制
export const getServerSideProps = async () => {

  try {
    const palettes = []
    const docRef = query(collection(db, 'palettes'), orderBy('likes', 'desc'), limit(16))
    const docData = await getDocs(docRef)
    docData.forEach((doc) => {
      palettes.push(doc.data())
    })

    if (!docData) {
      return {
        props: {
          data: { error: 'Failed to load palettes. Please refresh the page.'}
        }
      }
    } else {
      return {
        props: {
          data: { palettes }
        }
      }
    }

  } catch (e) {
    console.log('error:', e)
  }
}

它将在构建时运行,然后在用户查看/导航到页面时对每个请求运行?

那么,仅仅使用useSWR或另一个API获取器有什么不同:

代码语言:javascript
复制
export default function PaletteSlugs({ slug }) {
  const { data, error } = useSWR(`/api/palette/${slug}`, fetcher)
  return (
   {data}
  )
}

此外,这是否会影响数据库上会发生多少次请求/读取?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 20:03:22

简单地说,使用getServerSideProps将在Node.js服务器上获取Node.js数据,而HTML将被服务器上的Node.js完全填充。如果您尝试打开浏览器中的页面源,您将看到页面源中已经存在所有数据,这将对SEO更好。

但是useSWR会像普通fetch一样在客户端获取数据,数据将在客户端填充。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73379639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档