vue服务端渲染ssr和预渲染Prerendering、Nuxt.js
服务器端渲染(SSR)
与传统 SPA(Single-Page Application - 单页应⽤程序)相⽐,服务器端渲染(SSR)的优势主要在于:
更好的 SEO,由于搜索引擎爬⾍抓取⼯具可以直接查看完全渲染的页⾯。
请注意,截⾄⽬前,Google 和 Bing 可以很好对同步 JavaScript 应⽤程序进⾏索引。在这⾥,同步是关键。如果你的应⽤程序初始展⽰ loading 菊花图,然后通过 Ajax 获取内容,抓取⼯具并不会等待异步完成后再⾏抓取页⾯内容。也就是说,如果 SEO 对你的站点⾄关重要,⽽你的页⾯⼜是异步获取内容,则你可能需要服务器端渲染(SSR)解决此问题。
更快的内容到达时间(time-to-content),特别是对于缓慢的⽹络情况或运⾏缓慢的设备。⽆需等待所有的 JavaScript 都完成下载并执⾏,才显⽰服务器渲染的标记,所以你的⽤户将会更快速地看到完整渲染的页⾯。通常可以产⽣更好的⽤户体验,并且对于那些「内容到达时间(time-to-content)与转化率直接相关」的应⽤程序⽽⾔,服务器端渲染(SSR)⾄关重要。
使⽤服务器端渲染(SSR)时还需要有⼀些权衡之处:
开发条件所限。浏览器特定的代码,只能在某些⽣命周期钩⼦函数(lifecycle hook)中使⽤;⼀些外部扩展库(external library)可能需要特殊处理,才能在服务器渲染应⽤程序中运⾏。
涉及构建设置和部署的更多要求。与可以部署在任何静态⽂件服务器上的完全静态单页⾯应⽤程序(SPA)不同,服务器渲染应⽤程序,需要处于 Node.js server 运⾏环境。
更多的服务器端负载。在 Node.js 中渲染完整的应⽤程序,显然会⽐仅仅提供静态⽂件的 server 更加⼤量占⽤ CPU 资源(CPU-intensive - CPU 密集),因此如果你预料在⾼流量环境(high traffic)下使⽤,请准备相应的服务器负载,并明智地采⽤缓存策略。
在对你的应⽤程序使⽤服务器端渲染(SSR)之前,你应该问的第⼀个问题是,是否真的需要它。这主要取决于内容到达时间(time-to-content)对应⽤程序的重要程度。例如,如果你正在构建⼀个内部仪表盘,初始加载时的额外⼏百毫秒并不重要,这种情况下去使⽤服务器端渲染(SSR)将是⼀个⼩题⼤作之举。然⽽,内容到达时间(time-to-content)要求是绝对关键的指标,在这种情况下,服务器端渲染(SSR)可以帮助你实现最佳的初始加载性能。
预渲染(Prerendering)
如果你调研服务器端渲染(SSR)只是⽤来改善少数营销页⾯(例如 /, /about, /contact 等)的 SEO,那
么你可能需要预渲染。⽆需使⽤ web 服务器实时动态编译 HTML,⽽是使⽤预渲染⽅式,在构建时(build time)简单地⽣成针对特定路由的静态 HTML ⽂件。优点是设置预渲染更简单,并可以将你的前端作为⼀个完全静态的站点。
Nuxt.js
从头搭建⼀个服务端渲染的应⽤是相当复杂的。幸运的是,我们有⼀个优秀的社区项⽬ 让这⼀切变得⾮常简单。Nuxt 是⼀个基于 Vue ⽣态的更⾼层的框架,为开发服务端渲染的 Vue 应⽤提供了极其便利的开发体验。更酷的是,你甚⾄可以⽤它来做为静态站⽣成器。推荐尝试。
搭建ssr服务器教程
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论