万能的 v 友啊,求一个不同语言开发的 web 混合渲染方案(首屏渲染用的不是基于 node 的服务端渲染,但是增量渲染使用 spa)要怎么做。

2025 年 8 月 6 日
 PungentSauce

就比如 flarum ,这个 laravel(php) 的开发的论坛,我发现他的首屏是有一些 html 标签的,但是增量渲染全是靠接口和 js ,这个项目运行的时候也没有启动 node 。是如何做到的。问了下 ai 基本都是说用了一个类似 vue 的库,但是页面属性绑定,页面切换应该没这么简单就处理好吧。有做过不同语言混合渲染的同学可以分享一下吗。 在不引入 node 做 ssr 的情况下。

4519 次点击
所在节点    程序员
69 条回复
PungentSauce
2025 年 8 月 6 日
@longnight
@zzzyyysss 还是群众之中有能人呀,之前我也有看 inertiajs ,没注意到支持列表里面有 golang 。 后面可以考虑试试这个
UnluckyNinja
2025 年 8 月 6 日
楼主想问的是 SSR 里的水合吧( Hydration ),服务端返回渲染完的 html ,在客户端根据 html 内容将组件和 DOM 一一对应并绑定事件等。水合基本上是前端框架主导的,后端只需要提供 html 和所需相关信息。

也就是说,如果你想实现 SSR/基于 SSR 的 SSG ,你得找到一个支持 SSR 的组件框架,基于 JS 的有 vue, react, svelte, solid, angular 等等,Laravel 文档的 SSR 说明里提及了 Inertiajs https://laravel.com/docs/12.x/vite#ssr 。

想了解 SSR 原理可以看看 vue 的文档 https://cn.vuejs.org/guide/scaling-up/ssr
以及 vite 的文档 https://cn.vite.dev/guide/ssr.html
apkapb
2025 年 8 月 6 日
楼主研究完 inertiajs+golang ,记得发帖说下经验啊
chengyunbo
2025 年 8 月 6 日
jquery ? ajax ?
PungentSauce
2025 年 8 月 7 日
flywanly990
2025 年 8 月 7 日
楼上大佬好多,我想到的是首页渲染的内容,直接改 index.html
flywanly990
2025 年 8 月 7 日
@flywanly990 然后增量的的渲染还是在<div id='root'></div>里,切换 route 的时候,再把首页的渲染内容隐藏
MHPSY
2025 年 8 月 7 日
最好还是用 node 系的前端框架 R 、V 、A 这三家,都有完整的解决方案,自己做会很麻烦

比如首屏的点击事件的绑定,首屏以外对于 spa 的支持

水合就是首屏加载结束,绑定事件和各种服务端就有的数据进行渲染

自己实现这个东西会很麻烦繁琐的事情很多,尤其是 spa 的实现,大概率离不开加载一个完整的 R 、V 、A
hengshenyu
2025 年 8 月 7 日
感觉原理上就无法实现呢,SSR 要求请求时在服务器处理前置逻辑(例如 vue 的部分生命周期)。这要求服务器语言必须要能执行这部分 JS 代码。

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

https://v2ex.ih06.com/t/1150266

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

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

© 2021 V2EX