vue服务端渲染页面缓存和组件缓存的实例详解

vue缓存分为页面缓存、组建缓存、接口缓存,这里我主要说到了页面缓存和组建缓存

页面缓存:

在server.js中设置

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

const LRU = require(‘lru-cache‘)

const microCache = LRU({

 max: 100, // 最大缓存的数目

 maxAge: 1000 // 重要提示:条目在 1 秒后过期。

})

 

const isCacheable = req => {

 //判断是否需要页面缓存

  if (req.url && req.url === ‘/‘) {

    return req.url

  } else {

   return false

  }

}

app.get(‘*‘, (req, res) => {

const cacheable = isCacheable(req)

  if (cacheable) {

    const hit = microCache.get(req.url)

     if (hit) {

    return res.end(hit)

  }

 }

const errorHandler = err => {

 if (err && err.code === 404) {

  // 未找到页面

  res.status(404).sendfile(‘public/404.html‘);

 } else {

  // 页面渲染错误

  res.status(500).end(‘500 - Internal Server Error‘)

  console.error(`error during render : ${req.url}`)

  console.error(err)

 }

}

const context = {

 title: ‘vue‘,

 keywords: ‘vue-ssr服务端脚手架‘,

 description: ‘vue-ssr-template, vue-server-renderer‘,

 version: v,

 url: req.url,

 cookies: req.cookies

}

renderer.renderToString(context, (err, html) => {

 if (err) {

  return errorHandler(err)

 }

 res.end(html)

 microCache.set(req.url, html) // 设置当前缓存页面的内容

})

})

组建缓存:

在server.js中设置如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

function createRenderer(bundle, template) {

 return require(‘vue-server-renderer‘).createBundleRenderer(bundle, {

  template,

  cache: LRU({

   max: 1000,

   maxAge: 1000 * 60 * 5 // 组建缓存时间

  })

 })

}

let renderer

if (isProd) {

 // 生产环境使用本地打包文件来渲染

 const bundle = require(‘./output/vue-ssr-bundle.json‘)

 const template = fs.readFileSync(resolve(‘./output/index.html‘), ‘utf-8‘)

 renderer = createRenderer(bundle, template)

} else {

 // 开发环境使用webpack热更新服务

 require(‘./build/dev-server‘)(app, (bundle, template) => {

  renderer = createRenderer(bundle, template)

 })

}

 要缓存的组建

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

export default {

 name: ‘Home‘,

 title() {

  return {

   title: ‘vue-ssr‘,

   keywords: ‘vue-ssr服务端脚手架, home‘,

   description: ‘vue-ssr-template, vue-server-renderer, home‘

  }

 },

 created() {

 },

 computed: {},

 asyncData({ store }) {},

 methods: {},

 serverCacheKey: props => props.id

}

serverCacheKey 返回的 key 应该包含足够的信息,来表示渲染结果的具体情况。如果渲染结果仅由 props.item.id 决定,则上述是一个很好的实现。但是,如果具有相同 id 的 item 可能会随时间而变化,或者如果渲染结果依赖于其他 prop,则需要修改 serverCacheKey 的实现,以考虑其他变量。如果 serverCacheKey返回常量将导致组件始终被缓存,这对纯静态组件是有好处的。

尚学堂iOS初级视频教程    下载地址:百度网盘下载
魔乐科技教你13天搞定JAVA系列高端教程 视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
[JAVA] 尚学堂java GUI学习 视频教程 教学视频 百度云网盘下载    下载地址:百度网盘下载
[JAVA] 传智播客 张孝祥 Java多线程与并发库高级应用视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
[JAVA] hibernate3.3视频教学 39讲 韩顺平主讲 附笔记-源码-资料-课件 视频教程    下载地址:百度网盘下载
[JAVA] spring视频教学讲座 28讲 韩顺平 附笔记-图解-代码-开发包主讲 视频教程    下载地址:百度网盘下载
[JAVA] JavaWeb图书管理系统视频+资料+笔记 视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
[JAVA] 张孝祥 J2SE高深讲解 视频教程 教学视频 百度云网盘下载    下载地址:百度网盘下载
[JAVA] 任小龙JDBC和MyBatis课程 视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
[JAVA] 智捷关东升老师Java系列视频之数据库部分 视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
[JAVA] 黑马JavaEE第15期 视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
Java教程|Java网上在线支付实战教程    下载地址:百度网盘下载
Java教程|OA+工作流实战视频教程    下载地址:百度网盘下载
Java教程|Activiti工作流视频教程    下载地址:百度网盘下载
Hibernate教程_Hibernate视频教程|黑马程序员    下载地址:百度网盘下载
Struts2教程_Struts2视频教程|黑马程序员    下载地址:百度网盘下载
Spring教程_Spring视频教程|黑马程序员    下载地址:百度网盘下载
Java教程SSH框架之综合项目开发    下载地址:百度网盘下载

原文地址:https://www.cnblogs.com/yedda/p/9898658.html

时间: 2024-11-05 15:55:30

vue服务端渲染页面缓存和组件缓存的实例详解的相关文章

vue服务端渲染 同构渲染

引言 自JavaScript诞生以来,前端技术发展非常迅速.移动端白屏优化是前端界面体验的一个重要优化方向,Web 前端诞生了 SSR .CSR.预渲染等技术. 十年前,几乎所有网站都使用 ASP.Java.PHP 这类做后端渲染,但后来随着 jQuery.Angular.React.Vue 等 JS 框架的崛起,开始转向了前端渲染.2014年起又兴起了同构渲染,号称是未来,集成了前后端渲染的优点,当真如此? 我们先明确三个概念: 后端渲染:后端渲染指传统的 ASP.Java 或 PHP 的渲染

解析Nuxt.js Vue服务端渲染摸索

本篇文章主要介绍了详解Nuxt.js Vue服务端渲染摸索,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. Nuxt.js 十分简单易用.一个简单的项目只需将 nuxt 添加为依赖组件即可.Vue因其简单易懂的API.高效的数据绑定和灵活的组件系统,受到很多前端开发人员的青睐.国内很多公司都在使用vue进行项目开发,我们正在使用的简书,便是基于Vue来构建的.我们知道,SPA前端渲染存在两大痛点:(1)SEO.搜索引擎爬虫难以抓取客户端渲染的

vue服务端渲染提取css

vue服务端渲染,提取css单独打包的好处就不说了,在这里主要说的是抽取css的方法 要从 *.vue 文件中提取 CSS,可以使用 vue-loader 的 extractCSS 选项(需要 vue-loader12.0.0+) // webpack.config.js const ExtractTextPlugin = require('extract-text-webpack-plugin') // CSS 提取应该只用于生产环境 // 这样我们在开发过程中仍然可以热重载 const is

服务端捡起或丢弃指定物品ID触发详解

传奇服务端捡起或丢弃指定物品ID触发详解: @PickUpItemsX X是物品数据库中对应的IDX@DropItemsX X是物品数据库中对应的IDX@H.PickUpItemsX X是物品数据库中对应的IDX(英雄)@H.DropItemsX X是物品数据库中对应的IDX(英雄) QFunction-0.txt功能脚本增加以下内容 在列表信息二选择需要触发的物品后在功能脚本增加: [@DropItems10]#if#actSENDMSG 0 玩家<$USERNAME>在<$MapTi

Vue服务端渲染和Vue浏览器端渲染的性能对比

Vue 2.0 开始支持服务端渲染的功能,所以本文章也是基于vue 2.0以上版本.网上对于服务端渲染的资料还是比较少,最经典的莫过于Vue作者尤雨溪大神的 vue-hacker-news.本人在公司做Vue项目的时候,一直苦于产品.客户对首屏加载要求,SEO的诉求,也想过很多解决方案,本次也是针对浏览器渲染不足之处,采用了服务端渲染,并且做了两个一样的Demo作为比较,更能直观的对比Vue前后端的渲染. talk is cheap,show us the code!话不多说,我们分别来看两个D

实例PK(Vue服务端渲染 VS Vue浏览器端渲染)

Vue 2.0 开始支持服务端渲染的功能,所以本文章也是基于vue 2.0以上版本.网上对于服务端渲染的资料还是比较少,最经典的莫过于Vue作者尤雨溪大神的 vue-hacker-news.本人在公司做Vue项目的时候,一直苦于产品.客户对首屏加载要求,SEO的诉求,也想过很多解决方案,本次也是针对浏览器渲染不足之处,采用了服务端渲染,并且做了两个一样的Demo作为比较,更能直观的对比Vue前后端的渲染. 话不多说,我们分别来看两个Demo:(欢迎star 欢迎pull request) 1.浏

vue服务端渲染添加缓存的方法

什么是服务器端渲染(SSR)? Vue.js 是构建客户端应用程序的框架.默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM.然而,也可以将同一个组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序. 服务器渲染的 Vue.js 应用程序也可以被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行. 缓存 虽然 Vue 的服务

Vue.js与 ASP.NET Core 服务端渲染功能整合

http://mgyongyosi.com/2016/Vuejs-server-side-rendering-with-aspnet-core/ 原作者:Mihály Gy?ngy?si 译者:oopsguy.com 我真的很喜欢在前端使用 Vue.js,Vue 服务端渲染直到第二个版本才被支持. 在本例中,我想展示如何将 Vue.js  服务端渲染功能整合 ASP.NET Core. 我们在服务端使用了 Microsoft.AspNetCore.SpaServices 包,该包提供 ASP.N

react服务端渲染框架

客户端渲染 加载一个空的html页面,然后请求一个打包的js文件,然后再客户端执行这个js文件 动态生成html内容然后插入到DOM元素上,在源代码查询中也只能看到空的html文档 没有任何其他内容 服务端渲染 加载出来的就带有完整的html文档内容(同时带有数据) 流程: 浏览器发送请求 --> 服务器端运行react代码生成页面 --> 服务器端返回渲染的页 客户端渲染:react代码在浏览器上执行,消耗的是用户浏览器的性能 服务端渲染:react代码在服务器上执行,消耗的是服务器端的性能