• vue服务端渲染


       一、基本原理

        1、服务端渲染实现原理机制:在服务端拿数据进行解析渲染,直接生成html片段返回给前端。然后前端可以通过解析后端返回的html片段到前端页面,大致有以下两种形式:

           a、服务器通过模板引擎直接渲染整个页面,例如java后端的vm模板引擎,php后端的smarty模板引擎。

           b、服务端渲染生成html,前端通过ajax获取然后使用js动态添加。

        2、服务端渲染的优劣

           服务端渲染的好处:

          a、seo问题,有利于搜索引擎蜘蛛抓取网站内容,利于网站的收录于排名,有利于第三方的统计;

          b、首屏加载过慢问题,现在成熟的SPA项目中,打开首页需要加载完js以及别的资源。通过服务端渲染可以加速首屏加载,如拼多多。

          服务端渲染的坏处:

          给服务端增加压力。

        3、SSR的实现原理      

             简单讲下,ssr的实现原理。ssr有两个入口文件,client.js和server.js 。webpack通过两个入口文件分别打包成给服务端用的server bundle 和给客户端用的client bundle。当服务端接受到来自客户端的请求后,会创建一个渲染器bundleRender, 这个bundleRenderer会读取上面生成的server bundle 文件,并且执行它的代码,然后发送一个生成好的html到浏览器,等客户端加载了client bundle 之后,会和服务端生成的DOM进行Hydration (判断这个DOM和自己即将生成的DOM是否相同,如果相同就是将客户端的vue 实例挂载到这个DOM上,否则会提示警告)。

     

            客户端请求服务器,服务器根据请求地址获得匹配的组件,在调用匹配到的组件返回 Promise (官方是preFetch方法)来将需要的数据拿到。最后再通过

              <script>window.__initial_state=data</script>

            将其写入网页,最后将服务端渲染好的网页返回回去。

        4、实现过程

            创建一个vue实例 ;

            配置路由,以及相应的视图组件;(路由的配置与往常的不太一样,用react  常用的路由表示)

            使用vuex管理数据,在beforeMount 中先进行渲染,与react生命周期中的shouldComponentUpdate差不多

            创建服务端入口文件

            创建客户端入口文件

            配置webpack, 分服务端打包配置和客户端打包配置(避免前端请求的乱套,分模块请求)

            创建服务器端的渲染器,将vue实例渲染成html

            

             参考网址:https://www.jb51.net/article/132424.htm

                              https://segmentfault.com/a/1190000011039920

     

  • 相关阅读:
    c# 运算符 ? ??
    c# linq <未完>
    javasript this
    python3 闭包(一)
    dom 中的换行符
    (转)关于 awk 的 pattern(模式)
    linux note(1)
    python sqlite3
    python 特殊方法
    Go Example--锁
  • 原文地址:https://www.cnblogs.com/leyan/p/9437439.html
Copyright © 2020-2023  润新知