Vue 2.0 服务端渲染入门介绍

发布时间 - 2026-01-11 00:25:43    点击率:

1 什么是服务端渲染 SSR

server side render

就是通过后端吐模板,而不是通过前端ajax获取数据,拼接字符串。

2 为什么需要SSR

需要SEO,因为爬虫不会等待ajax结果。

客户端网络慢,加载速度慢,影响用户体验。

3 另一种解决办法 预渲染

不是一次性下载整个单页应用,预渲染只是在构建时为了特定的路由生成特定的几个静态页面

你用webpack可以很简单地通过prerender-spa-plugin来添加预渲染

 4 NodeJS编写Vue的SSR

首先npm install --save-dev的有 vue express vue-server-renderer

// server.js

'use strict';

var fs = require('fs');
var path = require('path');

global.Vue = require('vue')

var layout = fs.readFileSync('./index.html', 'utf8')

var renderer = require('vue-server-renderer').createRenderer()

var express = require('express')
var server = express()

server.use('/assets',express.static(
  path.resolve(__dirname,'assets')
))


server.get('*',function(req, res){

  // 将Vue实例渲染成HTML
  renderer.renderToString(
    // 创建一个应用实例
    require('./assets/app')(),

    // 处理渲染结果
    function(error, html){
      if(error){
        console.error(error);
        return res
          .status(500)
          .send('Server Error')
      }
      // 发送布局和HTML文件
      res.send(layout.replace('<div id="app"></div>', html))

    }
  )
})


server.listen(5000, function(error){
  if(error) throw errorr;
  console.log('Server is running at localhost:5000')
})

// index.html 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="" charset="utf-8"></script>
  <script src="/assets/vue.js" charset="utf-8"></script>
</head>
<body>

  <div id="app"></div>
  <script src="/assets/app.js" charset="utf-8"></script>
  <script type="text/javascript">app.$mount('#app')</script>


</body>
</html>

// assets/app.js

(function() {
  'use strict'
  var createApp = function() {
    return new Vue({
      template: '<div id="app">你已经在这花了 {{ counter }} 秒。</div>',
      data: {
        counter: 0
      },
      created: function() {
        var vm = this;
        setInterval(function(){
          vm.counter += 1;
        },1000)
      }
    })
  }

  // 暴露接口
  if(typeof module !== 'undefined' && module.exports) {
    module.exports = createApp
  } else {
    this.app = createApp()
  }

}).call(this)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue服务端渲染  # vue.js  # 2.0服务端渲染  # vue2.0服务端渲染  # 详解vue服务端渲染(SSR)初探  # 详解基于 Nuxt 的 Vue.js 服务端渲染实践  # 基于vue-ssr服务端渲染入门详解  # 详解Vue基于 Nuxt.js 实现服务端渲染(SSR)  # 详解如何使用Vue2做服务端渲染  # Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )  # vue服务端渲染的实例代码  # 详解Nuxt.js Vue服务端渲染摸索  # 详解基于vue的服务端渲染框架NUXT  # vue服务端渲染添加缓存的方法  # vue服务端渲染页面缓存和组件缓存的实例详解  # vue服务端渲染操作简单入门实例分析  # 几个  # 在这  # 很简单  # 花了  # 你已经  # 你用  # 解决办法  # 创建一个  # 速度慢  # 服务端  # 大家多多  # 而不是  # 客户端  # 后端  # 应用实例  # 加载  # 只是在  # strict  # js  # var 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】  微信小程序制作网站有哪些,微信小程序需要做网站吗?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  如何快速搭建高效简练网站?  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  再谈Python中的字符串与字符编码(推荐)  php打包exe后无法访问网络共享_共享权限设置方法【教程】  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  Laravel怎么在Blade中安全地输出原始HTML内容  如何快速上传自定义模板至建站之星?  如何在万网自助建站平台快速创建网站?  如何在橙子建站中快速调整背景颜色?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  在线制作视频的网站有哪些,电脑如何制作视频短片?  制作公司内部网站有哪些,内网如何建网站?  黑客如何利用漏洞与弱口令入侵网站服务器?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  三星网站视频制作教程下载,三星w23网页如何全屏?  详解Huffman编码算法之Java实现  高性价比服务器租赁——企业级配置与24小时运维服务  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  JavaScript Ajax实现异步通信  英语简历制作免费网站推荐,如何将简历翻译成英文?  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  QQ浏览器网页版登录入口 个人中心在线进入  ,怎么在广州志愿者网站注册?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  🚀拖拽式CMS建站能否实现高效与个性化并存?  JavaScript模板引擎Template.js使用详解  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  *服务器网站为何频现安全漏洞?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何在局域网内绑定自建网站域名?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  Laravel怎么调用外部API_Laravel Http Client客户端使用  网站图片在线制作软件,怎么在图片上做链接?  无锡营销型网站制作公司,无锡网选车牌流程?  教学论文网站制作软件有哪些,写论文用什么软件 ?  Laravel DB事务怎么使用_Laravel数据库事务回滚操作  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  javascript中的try catch异常捕获机制用法分析  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  香港服务器部署网站为何提示未备案?