宝哥软件园

Vue服务器端渲染实践中Web应用首屏耗时优化方案

编辑:宝哥软件园 来源:互联网 时间:2021-08-26

随着各种前端框架的诞生和演变,SPA也开始流行起来。单页应用的优势在于可以通过ajax与服务器进行通信,无需重新加载整个页面,可以实现整个Web应用拒绝更新,带来极致的用户体验。但是,对于需要SEO,追求极致首屏性能的应用,前端渲染SPA就不好了。幸运的是,在Vue 2.0之后,服务器端渲染得到了支持,用零敲碎打的方式做事情需要两三个星期。通过改造现有项目,Vue服务器端渲染在现有项目中基本完成。

至于Vue服务器端渲染的原理和构造,官方文档已经详细描述过了。因此,本文不是文件的副本,而是文件的补充。特别是,与现有项目集成需要很大的努力。本文主要阐述了我的项目中Vue服务器渲染的转换过程,并增加了一些个人的理解如分享和学习。

总结

本文主要分为以下几个方面:

什么是服务器端渲染?服务器渲染的原理是什么?如何在基于Koa的Web服务器框架上配置服务器端渲染?基本用法Webpack配置开发环境构建渲染中间件配置如何改革现有项目?基础目录改造;使用vue-router在服务器上划分代码;在服务器上预拉数据;客户端管理的全局状态;常见问题的解决方案;什么是服务器端渲染?服务器渲染的原理是什么?

Vue.js是一个构建客户端应用程序的框架。默认情况下,可以在浏览器中输出Vue组件来生成DOM和操作DOM。但是,您也可以在服务器端将相同的组件呈现为HTML字符串,将它们直接发送到浏览器,最后在客户端将这些静态标签“激活”为完全交互式的应用程序。上面这段话来源于Vue服务器上渲染文档的讲解。通俗来说,大致可以这样理解:

服务器端渲染的目的是:性能优势。对应的HTML字符串在服务器端生成,客户端接收对应的HTML字符串,可以立即渲染DOM,最高效的第一屏需要时间。另外,由于服务器直接生成对应的HTML字符串,对SEO也非常友好;服务器端渲染的本质是生成应用程序的“快照”。在服务器上运行Vue及其对应的库。此时Web Server Frame实际上是作为代理服务器访问接口服务器预拉数据,从而将拉取的数据作为Vue组件的初始状态。服务器端渲染的原理是:虚拟DOM。Web Server Frame作为代理服务器访问接口服务器预拉数据后,这是服务器初始化组件所需的数据。之后,将在服务器上调用组件的beforeCreate和created生命周期。在初始化相应的组件后,Vue使虚拟DOM能够形成一个初始化的HTML字符串。之后交给客户端托管。实现前后端同构的应用。如何在基于Koa的Web服务器框架上配置服务器端渲染?

基本用法

vue服务器需要渲染相应的库Vue服务器渲染器,它是通过npm安装的:

Npm安装Vue Vue-服务器-渲染器-保存最简单的,首先渲染一个Vue实例:

//步骤1:创建一个Vue实例const Vue=require(' Vue ');const app=new Vue({ template : ` div hello World/div `});//步骤2:创建渲染器const renderer=require(' vue-server-renderer ')。create renderer();//第三步:将Vue实例渲染为html renderer . rendertostring(app,(err,html)={ if(err){ throw err;} console . log(html);//=div数据-服务器-渲染=' true ' hello World/div });与服务器的集成:

module.exports=异步函数(CTX){ CTX . status=200;让html=尝试{ //.html=wait renderer . rendertostring(app,CTX);} catch(err){ CTX . logger(' Vue SSR Render错误',JSON . stringify(err));html=wait CTX . GetErrorPage(err);//出现呈现错误的页面} ctx.body=html}使用页面模板:

当您渲染Vue应用程序时,渲染器仅从应用程序开始

更多资讯
游戏推荐
更多+