客户端渲染(Client Side Render),就是用户在通过URL请求访问网站时,服务器端返回给的是html文档,再让浏览器去解析渲染展示页面,其中的js,css,图片文件等均需再次发送请求去服务端请求数据加载。
与客户端渲染相对应的就是服务器端渲染(SSR),在服务端看来,所有的前端渲染显示页面都是一串字符串,包括html, js, css都是如此,服务端渲染即是将一段处理好后的html字符串返回给客户端,而在返回的这个html字符串中,服务端知识将需要展示到html的服务端数据等信息直接写入到了这段html字符串中让客户端浏览器能够直接对其进行显示。
这里简单示例一个服务端渲染的例子:
import Koa from 'koa' import Router from 'koa-router' const app = new Koa() const router = new Router() router.get('/', async (ctx) => { ctx.body = ` <html> <head> <title>服务端渲染返回</title> </head> <body> <h1>Hello World!</h1> </body> </html> ` }) app.use(router.routes()) app.listen(3000, () => { console.log("koa server listening on 3000") })通过上述服务端返回的html字符串到客户端直接显示成了相应的网页,这样客户端不用再去多次不断的请求服务端加载数据了
因此SSR的出现就是可以解决了传统CSR存在的这种弊端,因为此时客户端请求拿到的就将是我们服务端渲染好的html,这样对于SEO也足够的友好。