怎么让 React 应用打包的时候部分页面已经渲染了(不用 Next.js)

13 天前
 importmeta

正在开发个 React 应用,有 5 个页面,每个页面的某些区域只有登录之后才能使用,我又想让搜索引擎能抓到这 5 个页面。

为啥不能用 Next.js 的原因是:

Next 的 Router 太封闭了。我这应用用不了,我魔改了一下 React Router 的 Outlet 搞了一个 Tab 页功能,自己控制页面渲染。

求助!

1668 次点击
所在节点    React
13 条回复
horizon
13 天前
vite ssr
skallz
13 天前
如果只是针对搜索引擎的话,使用 prerender 预渲染相关的库,网上一搜一大把,然后针对搜索引擎的请求返回组装好的页面,普通用户还是浏览 spa 页面,对项目无侵入性
xu33
13 天前
ssg
bojackhorseman
13 天前
importmeta
13 天前
@horizon 暂时切不了 Vue...
importmeta
13 天前
@skallz 感觉这个好,判断爬虫就给预渲染完成的
importmeta
13 天前
@xu33 SSG 生成的是静态的 html 吧,这里面能写交互吗?
horizon
13 天前
@importmeta #5
react 也支持
xu33
13 天前
@importmeta 跟交互没关系吧,不管 ssr ,ssg 还是 csr ,交互都在 js 里
importmeta
13 天前
@bojackhorseman Next ,不适合...
@horizon 还是 SSR 吧,我这项目没办法起个服务跑 SSR
@xu33 好的,我研究一下
dudubaba
13 天前
打包的时候用生成 html 不就行了,其实就是 ssr 的原理。但是你这不需要那么复杂,只要能抓取就行,本地 mock 一份登录后才能获取的静态 josn 数据,然后 react 的 rendertostring 生成字符串再用 fs 写入文件。
flmn
13 天前
Astro 了解一下,island
seeu2ex
12 天前
React 的 server component 可以,你可以看看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1070483

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX