我对 next.js 有疑问。
我已经阅读了生成 HTML 文件的增量静态生成, 但我有一个像下面这样的案例,
所以我的问题是在 next.js 下可能出现的行为?
目前对于我们的服务器端渲染,我们使用简单的 node.js。
www.sample/home?number=1
const resultHTML = ReactDOMServer.renderToString(<Home data={data} />)
下面不是真正的代码,大致是这样的
import express from 'express'
import React from 'react'
import ReactDOMServer from 'react-dom/server'
import App from '../src/App'
const PORT = 8080
const app = express()
const router = express.Router()
app.get('/home', async (req,res) => {
const number = req.query.number
let resultHTML = checkRedisForNumber(number);
if(!resultHTML){
const data = await fetch('urlToData');
resultHTML = ReactDOMServer.renderToString(<Home data={data} />)
cacheResultToRedis(number, result);
// future user that use same query will be served from redis
// this way server does not waste cpu power trying to renderToString
}
res.setHeader('content-type', 'text/html');
res.send(resultHTML);
})
据我所知,getServerSideProps() 会返回 props, 并且将始终执行第 3 步。
为什么需要跳过第 3 步?