• 技术文章 >web前端 >Vue.js

    ssr和vue的区别是什么

    长期闲置长期闲置2022-03-17 11:59:55原创122

    ssr和vue的区别是:ssr是在服务器将组件渲染成HTML字符串后返回,而vue是在客户端发送请求后,服务器返回空的HTML、css、js等,组件在客户端进行渲染。

    本文操作环境:windows10系统、Vue2.9.6版,DELL G3电脑。

    ssr和vue的区别是什么

    ssrvue的服务端渲染技术,nuxt是一个可以用来做ssr服务端渲染开发的框架.
    ssr是技术基础,nuxt是封装

    一、什么是SSR

    Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM。全部的操作都是在客户端运行. 在这种情况下, 生命周期 mounted 之前 ,看不到任何东西的, 或者如果我们的客户端瑞浏览器,禁用了js功能的话, 就会一片空白
    然而,vuejs 也可以将同一个vue组件在服务器端直接就渲染为 HTML 字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序

    二、ssr与普通vue的区别

    普通vue是客户端发送请求后,服务器返回空的HTML,css,js等,在客户端进行渲染
    ssr是在服务器渲染成字符串后返回

    在这里插入图片描述

    三、渲染一个vue实例

    初始化

    npm init

    下载安装

    npm install vue vue-server-renderer --save

    创建一个js

    // 第 1 步:创建一个 Vue 实例
    const Vue = require('vue')
    const app = new Vue({
      template: `<div>Hello World</div>`
    })
    
    // 第 2 步:创建一个 renderer
    const renderer = require('vue-server-renderer').createRenderer()
    
    // 第 3 步:将 Vue 实例渲染为 HTML
    renderer.renderToString(app, (err, html) => {
      if (err) throw err
      console.log(html)
      // => <div data-server-rendered="true">Hello World</div>
    })
    
    // 在 2.5.0+,如果没有传入回调函数,则会返回 Promise:
    renderer.renderToString(app).then(html => {
      console.log(html)
    }).catch(err => {
      console.error(err)
    })

    调出终端显示效果

    node 文件名,显示<p>Hello World</p>

    在这里插入图片描述

    四、与服务器集成

    下载安装

    npm install express --save

    js

    // 第 1 步:创建一个 Vue 实例
    const Vue = require('vue')
    const express = require('express')//创建服务器
    const app = new Vue({
        template: `<div>Hello World</div>`
    })
    
    const server = express()
    
    
    // 第 2 步:创建一个 renderer
    const renderer = require('vue-server-renderer').createRenderer()
    
    // 在 2.5.0+,如果没有传入回调函数,则会返回 Promise:
    renderer.renderToString(app).then(html => {
        console.log(html)
    }).catch(err => {
        console.error(err)
    })
    
    server.get("*", (req, res) => {
    
        // 第 3 步:将 Vue 实例渲染为 HTML
        renderer.renderToString(app, (err, html) => {
            if (err) throw err
            console.log(html)
    
            res.send(html)
    
            // => <div data-server-rendered="true">Hello World</div>
        })
    
    })
    //打开服务器,监听端口等待浏览器访问
    server.listen(8080, (err) => {
        console.log("ok");
    })

    效果

    输入127.0.0.1:8080

    在这里插入图片描述

    四、为什么/要不要使用服务器端渲染 (SSR)?

    与传统 SPA (单页应用程序 (Single-Page Application)) 相比,服务器端渲染 (SSR) 的优势主要在于:

    【相关推荐:《vue.js教程》】

    以上就是ssr和vue的区别是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:vue
    上一篇:vue的生命周期有哪些阶段 下一篇:vue数据驱动原理是什么
    PHP编程就业班

    相关文章推荐

    • vue是什么编程范式• vue怎么取消eslint• vue中v-for的用法是什么• vue中v-if的用法• vue中$on的用法是什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网