地球上没有对手的 SSR 框架——插件化思想

今天我们继续来介绍地球上没有对手的SSR框架,这篇文章我要讲的是这个框架一个非常吸引我的地方------插件化。

什么是插件化

该 ssr 框架中将客户端框架比如 react,服务端框架比如 nestjs 的功能当成了一种插件来使用,它支持任意服务端框架与任意前端框架的组合使用。什么意思?对于 SSR 我们都知道需要前端和服务端同时支持,所以在做 ssr 时我们还需要考虑使用哪种服务端技术来支持。目前该框架官方已经实现好了一些插件,客户端插件有------react、vue2、vue3,服务端插件有------midway、nestjs。你熟悉或者需要用 react 和 nestjs,那你就选择这个组合,你是 vue 技术栈,你就选 vue。当然,如果这两个服务端框架都不满意,你就想用 koa,得益于插件化的架构,你也可以自己用 koa 来实现服务端的渲染。当然,构建工具也同时支持了 webpack 和 vite。

plugin-react -> plugin-midway -> midway -> hoc-react

插件化如何运作的

目前官方已经支持了这些组合的选择,我们就以第一个组合为例,讲解一下该框架的插件化的运作流程。

我们先看一下这个组合的文件结构:

src 文件夹下存放的是服务端的代码,当匹配到对应前端路由时返回页面。web 文件夹是前端的文件结构,暂时无需过多关注。

然后我们看一下源码的文件结构,我们只需关注圈起来的这几个文件夹:

当我们本地开发启动时,概括来说,就以下四步:

graph TD plugin-react --> plugin-midway --> 项目文件夹下src的逻辑 --> core-render

然后我们分别讲讲每一步都干了什么

  1. plugin-react: 提供了 react 的构建配置、运行时入口、一些初始化、数据预获取的能力
  2. plugin-midway:代码变更时重启服务,去执行项目下的服务端代码
  3. 服务端代码逻辑执行:匹配到对应前端路由时,调用core文件夹下的 render 方法返回前端页面
  1. 执行 render,返回服务端渲染好的 html 结果

总结

本文阐述了该框架的插件化设计理念,并展示了基于此理念构建的服务端渲染流程。可以看到,流程简洁明了,而且各个功能组件之间界限分明,便于定制和扩展,极其适合开发者根据具体需求进行个性化适配。

相关推荐
贫民窟的勇敢爷们12 小时前
React跨平台能力,打破前端开发的平台边界
前端·react.js·前端框架
学习论之费曼学习法19 小时前
ReAct框架深度解析:让Agent会思考再行动
前端·react.js·前端框架
Highcharts.js20 小时前
Highcharts React v5版本迁移的核心注意事项和步骤清单
开发语言·javascript·react.js·前端框架·highcharts
Highcharts.js2 天前
Highcharts React v5升级三问|最大的升级方向是什么?需要注意什么?有什么优化?
前端·javascript·react.js·前端框架·highcharts·大数据渲染·前端性能
skilllite作者2 天前
SkillLite Channel 与 Gateway 配置完全指南:Webhook、环境变量与桌面助手
ide·后端·前端框架
三声三视3 天前
Electron鸿蒙桌面应用打包部署完全指南(含自动更新)
前端·electron·前端框架·harmonyos·鸿蒙·桌面端
@大迁世界3 天前
41.ShadCN 是什么?它如何和 Tailwind CSS 集成,从而更容易构建可访问且可自定义的 React 组件?
前端·javascript·css·react.js·前端框架
我命由我123454 天前
Dart - Dart SDK、Hello World 案例、变量声明、常量声明、常量 final、字符串类型
前端·flutter·前端框架·html·web·dart·web app
不会写DN4 天前
为什么需要 @types/react? 解决“无法找到模块 react 的声明文件”报错
前端·react.js·前端框架
右耳朵猫AI4 天前
React技术周刊 2026年第14周
前端·react.js·前端框架