我期待着用NextJS和Google的Firebase创建一个web应用程序.该应用程序有一个管理面板和一个公共网站.在管理面板中,应该有编辑公共站点导航的选项.

所以我在想,在每次刷新时让客户端获取导航数据是明智的,还是有更好的方法可以用尽可能少的API请求获取动态和最新的导航数据?

推荐答案

这实际上取决于您的用例.在下一页中.js有3种不同的数据获取类型.

静态站点生成-SSG

这将在构建时获取数据并呈现页面.对于不经常更改的页面来说,这是最好的.比如说博客.

服务器站点渲染-SSR

这将根据用户的每个请求获取数据并呈现页面.这对于快速变化且必须是最新的数据非常有用.

增量静态再生-ISR

这允许在我上面描述的两种类型之间进行折衷,如果您希望尽可能少地使用API请求,这可能就是您想要的.有了它,您可以在特定的时间间隔静态地重新生成页面.

export async function getStaticProps(){
    //fetch data from firebase ...

    return {
        props: { data },
        revalidate: 60, 
    }
}

Javascript相关问答推荐

如何在pixi js中画一条简单的线

复合密钥查找在mongoDB中未按预期工作

vue3类型脚本中可能未定义对象''

Toast函数找不到其dis

自定义帖子类型帖子未显示在网站上

Fastify错误:CORS策略已阻止从起源api-dev.example.com上的MLhttp请求

foreach循环中的Typescript字符串索引

如何为GrapesJS模板编辑器创建自定义撤销/重复按钮?

在贝塞尔曲线的直线上找不到交叉点:(使用@Pomax的bezier.js)

未捕获错误:在注销后重定向到/login页面时找不到匹配的路由

用于编辑CSS样式的Java脚本

如何解决useState错误—setSelect Image不是函数''

使用Nuxt Apollo在Piniastore 中获取产品细节

自定义确认组件未在vue.js的v菜单内打开

使用自动识别发出信号(&Q)

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

将多个文本框中的输出合并到一个文本框中

如何通过Axios在GraphQL查询中发送数组

react 路由如何使用从加载器返回的数据

与在编剧中具有动态价值的定位器交互