ReactRouter服务端渲染教程
程序员文章站
2022-03-13 12:16:59
服务端渲染
服务端渲染与客户端渲染有些许不同,因为你需要:
发生错误时发送一个500的响应
需要重定向时发送一个30x的响应
在渲染之前获得数据 (用 router 帮你完...
服务端渲染
服务端渲染与客户端渲染有些许不同,因为你需要:
发生错误时发送一个500的响应
需要重定向时发送一个30x的响应
在渲染之前获得数据 (用 router 帮你完成这点)
为了迎合这一需求,你要在
使用match在渲染之前根据 location 匹配 route
使用RoutingContext同步渲染 route 组件
它看起来像一个虚拟的 JavaScript 服务器:
import { renderToString } from 'react-dom/server' import { match, RoutingContext } from 'react-router' import routes from './routes' serve((req, res) => { // 注意!这里的 req.url 应该是从初始请求中获得的 // 完整的 URL 路径,包括查询字符串。 match({ routes, location: req.url }, (error, redirectLocation, renderProps) => { if (error) { res.send(500, error.message) } else if (redirectLocation) { res.redirect(302, redirectLocation.pathname + redirectLocation.search) } else if (renderProps) { res.send(200, renderToString()) } else { res.send(404, 'Not found') } }) })
至于加载数据,你可以用renderProps去构建任何你想要的形式——例如在 route 组件中添加一个静态的load方法,或如在 route 中添加数据加载的方法——由你决定。
下一篇: 我至今忘不了他的表情
推荐阅读
-
vegas怎么渲染视频? vegas导入视频并渲染的教程
-
vray3.4 for sketchup 2017 64位渲染器安装图文教程、破解方法
-
vue服务端渲染页面缓存和组件缓存的实例详解
-
VRay 3.6 for Rhino6渲染器汉化破解安装教程(附下载)
-
Octane Render渲染器C4D R17-19汉化破解详细教程(附完整下载)
-
渲染软件HDR projects 2018 pro无限制破解版安装教程(附下载)
-
3dmax2017渲染参数怎么设置 3dmax2017渲染设置教程
-
Blender玻璃杯模型怎么渲染? Blender渲染玻璃杯的教程
-
vegas怎么渲染视频? vegas导入视频并渲染的教程
-
Blender玻璃杯模型怎么渲染? Blender渲染玻璃杯的教程