在刚工作做java开发的时候,全都是服务器端渲染,从jsp到freemarker等,为什么vue/react要单独提出来这个概念呢?
与vue/react有关系吗?java的服务器端渲染以使用Spring为例,
就是写个Controller,然后return一个模板引擎页面,
同时需要往模板页面中的变量设置值vue的服务器端渲染看官网是结合Express这个web框架,原理也都差不多,官网是这样的
//第1步:创建一个Vue实例constVue=require('vue')constapp=newVue({template:`HelloWorld`})
//第2步:创建一个rendererconstrenderer=require('vue-server-renderer').createRenderer()
//第3步:将Vue实例渲染为HTMLrenderer.renderToString(app,(err,html)=>{if(err)throwerrconsole.log(html)//=>HelloWorld})
纯Express是这样app.get('/',function(req,res){res.render('index',{title:'Hey',message:'Hellothere!'});});
我的理解是,js技术栈中服务器渲染用Express就已经足够了,为什么Vue,React还要单独开发一个SSR模块,实质不就是访问一个url,然后Server端直接返回一个页面吗?用java不行吗?模板中你想引入啥js框架不就这么写就ok了嘛?//template.tpl%>
2 回答
杨魅力
TA贡献1811条经验 获得超6个赞
这要做到前后端同构,一套代码解决两端。用vue可以做到一个url进来,若是到了服务器端,服务端就把当前url对应的最终html给渲染出来,然后控制权就在浏览器端了,这时候跳转url全部由浏览器端控制,只向服务器端请求所需要的数据,服务器端不需要再继续渲染出最终的html了
肥皂起泡泡
TA贡献1829条经验 获得超6个赞
因为可以使用前端框架一些方案解决前端开发,但是渲染放在前端,搜索引擎是解析执行不了的你的那种方案,并不可行,这样load的页面返回本质上还是在前端渲染搜索引擎只认拿到的,并不关你会变成怎样。那么就简化成只要拿到处理后的html即可例如build出前端项目加一层渲染然后返回渲染后的文件例如ssr模块,牺牲一些东西。
添加回答
举报
0/150
提交
取消