初遇SSR

SSR简称服务端渲染,是一种在服务端上生成动态内容并将其发送到客户端的技术。

在本次SSR初遇中,是在PC端react项目结合BFF层的express.render做的一个比较小的SSR。

【注】:

"BFF层"指的是"Backend for Frontend"。在软件开发中,BFF层是指在前端和后端之间添加的一个服务层,旨在处理特定于前端的逻辑和需求,以提高系统的性能和灵活性。

项目背景

在BFF层统一管理着某些跨项目的变量。浏览器通过网址访问服务器上的打包代码文件时,打包的代码文件内部需要读取BFF层的变量进行做一些处理展示。

初遇过程

一、在react项目中添加ejs语法

react项目采用的是vite+react为主要技术栈。使用了vite打包构建为可浏览器运行的bundle代码(HTML+JS+CSS)。在HTML模版中,使用script标签进行插入一段ejs代码。

xml 复制代码
<script>
			window.__backendData = <%- JSON.stringify(backendData).replace(/(^"|"$)/gi, "") %>
</script>

二、BFF层

BFF层采用的是NodeJS+express。这里使用了express的engine和render函数进行处理。当浏览器访问网址的时候,根据访问路径渲染特定的代码资源,

dart 复制代码
// 实例化app服务
const app = express()

// 配置程序设置的视图目录views
app.set('views', config.VIEW_DIR)
// Express使用特定的模板引擎来处理后缀为.html的文件
app.engine('html', ejs.__express)
// 配置程序设置的模版引擎
app.set('view engine', config.VIEWS_ENGINE)

// 根据user路径,响应特定的资源,渲染的时候将
res.render('user', { name: 'Tobi' }, (err, html) => {
  // ...
})

三、整体流程

在react项目中插入ejs执行语句,后vite构建生成可在浏览器运行的html文件。将构建打包生成好的html放在express的视图目录下,express程序设置对应的视图目录views和模版引擎。当通过浏览器输入地址访问时,express程序按照设定的模版引擎和res.render传入的服务端数据render出响应。

心得总结

到此为止,小星初遇服务端渲染SSR的过程就完整讲述结束了。第一次遇到SSR,打破了以往的开发认知,服务端和web端不是只有通过请求进行通信,还可以通过SSR在资源初次渲染的时候就可以将服务端的变量融合进请求资源中,实现BFF层和web层资源的隔断打破。"路漫漫其修远兮",路还很长,需要学习的还有很多。加油,小星永远在路上。

相关推荐
夜郎king5 小时前
HTML5 SVG 实现日出日落动画与实时天气可视化
前端·html5·svg 日出日落
夏幻灵6 小时前
HTML5里最常用的十大标签
前端·html·html5
Mr Xu_6 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
未来龙皇小蓝6 小时前
RBAC前端架构-01:项目初始化
前端·架构
程序员agions6 小时前
2026年,微前端终于“死“了
前端·状态模式
万岳科技系统开发6 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
程序员猫哥_6 小时前
HTML 生成网页工具推荐:从手写代码到 AI 自动生成网页的进化路径
前端·人工智能·html
龙飞056 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
我爱加班、、6 小时前
Websocket能携带token过去后端吗
前端·后端·websocket
AAA阿giao6 小时前
从零拆解一个 React + TypeScript 的 TodoList:模块化、数据流与工程实践
前端·react.js·ui·typescript·前端框架