ssr和vue的区别是:ssr是在服务器将组件渲染成HTML字符串后返回,而vue是在客户端发送请求后,服务器返回空的HTML、css、js等,组件在客户端进行渲染。
本文操作环境:windows10系统、Vue2.9.6版,DELL G3电脑。
ssr和vue的区别是什么
ssr是vue的服务端渲染技术,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: `Hello World`})// 第 2 步:创建一个 rendererconst renderer = require('vue-server-renderer').createRenderer()// 第 3 步:将 Vue 实例渲染为 HTMLrenderer.renderToString(app, (err, html) => { if (err) throw err console.log(html) // =>Hello World})// 在 2.5.0+,如果没有传入回调函数,则会返回 Promise:renderer.renderToString(app).then(html => { console.log(html)}).catch(err => { console.error(err)})
登录后复制
调出终端显示效果
node 文件名,显示
Hello World
四、与服务器集成
下载安装
npm install express –save
js
// 第 1 步:创建一个 Vue 实例const Vue = require('vue')const express = require('express')//创建服务器const app = new Vue({ template: `Hello World`})const server = express()// 第 2 步:创建一个 rendererconst 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) // =>Hello World})})//打开服务器,监听端口等待浏览器访问server.listen(8080, (err) => { console.log("ok");})
登录后复制
效果
输入127.0.0.1:8080
四、为什么/要不要使用服务器端渲染 (SSR)?
与传统 SPA (单页应用程序 (Single-Page Application)) 相比,服务器端渲染 (SSR) 的优势主要在于:
更好的 SEO,由于搜索引擎爬虫抓取工具可以直接查看完全渲染的页面。更快的内容到达时间 (time-to-content),特别是对于缓慢的网络情况或运行缓慢的设备。无需等待所有的 JavaScript 都完成下载并执行,你的用户将会更快速地看到完整渲染的页面。
使用服务器端渲染 (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) 可以帮助你实现最佳的初始加载性能。
【相关推荐:《vue.js教程》】
以上就是ssr和vue的区别是什么的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2632891.html