当前位置:首页 > VUE

node实现vue页面缓存

2026-02-22 17:20:29VUE

使用 vue-server-renderer 实现服务端缓存

在 Node.js 中通过 vue-server-renderercreateBundleRenderer 实现页面缓存。配置 cache 选项可缓存渲染结果,减少重复渲染开销。

const { createBundleRenderer } = require('vue-server-renderer')
const renderer = createBundleRenderer(serverBundle, {
  cache: require('lru-cache')({
    max: 1000, // 缓存最大条目数
    maxAge: 1000 * 60 * 15 // 缓存15分钟
  })
})

组件级缓存配置

在 Vue 组件中添加 serverCacheKey 函数或 name 属性,决定缓存键。组件需为纯静态或无依赖动态数据。

export default {
  name: 'MyComponent',
  serverCacheKey: props => props.id, // 根据props.id生成缓存键
  props: ['id']
}

使用 micro-caching 优化高频请求

对高频访问页面采用短期缓存(1-2分钟),通过 lru-cache 快速响应重复请求。

const microCache = new LRU({
  max: 100,
  maxAge: 1000 * 60 // 1分钟缓存
})

app.get('*', (req, res) => {
  const hit = microCache.get(req.url)
  if (hit) return res.end(hit)

  renderer.renderToString((err, html) => {
    if (!err) microCache.set(req.url, html)
    res.end(html)
  })
})

动态数据与缓存失效处理

对于含动态数据的页面,通过版本号或时间戳强制更新缓存。

// 在渲染上下文注入版本号
context.version = dataVersion

// 组件内根据版本更新缓存
serverCacheKey: props => `${props.id}::${this.$ssrContext.version}`

避免内存泄漏的缓存策略

限制缓存大小与存活时间,避免长期占用内存。lru-cache 会自动淘汰最久未使用的条目。

node实现vue页面缓存

new LRU({
  max: 500, // 最大500条
  maxAge: 1000 * 60 * 30 // 30分钟自动失效
})

标签: 缓存页面
分享给朋友:

相关文章

vue页面实现

vue页面实现

Vue 页面实现方法 创建 Vue 组件 使用 Vue 单文件组件(SFC)方式创建页面,文件扩展名为 .vue。一个基本的 Vue 组件包含三个部分:模板(template)、脚本(script)和…

vue实现反馈页面

vue实现反馈页面

Vue 实现反馈页面的方法 基础表单结构 使用 Vue 的模板语法构建反馈表单,包含输入框、下拉选择、复选框等基础元素。表单需绑定 v-model 实现数据双向绑定。 <template>…

h5页面实现扫一扫

h5页面实现扫一扫

调用设备摄像头实现扫描功能 在H5页面中实现扫一扫功能通常需要调用设备的摄像头,并通过JavaScript解析摄像头捕获的图像。以下是几种常见的实现方法: 使用HTML5的getUserMedia…

vue 实现反馈页面

vue 实现反馈页面

实现反馈页面的基本结构 使用 Vue.js 创建一个反馈页面需要设计表单组件,包含输入框、下拉选择、评分控件等元素。以下是一个基础模板: <template> <div cla…

vue页面实现滚动

vue页面实现滚动

实现滚动的基本方法 在Vue中实现页面滚动可以通过多种方式完成,包括使用原生JavaScript、Vue指令或第三方库。以下是几种常见的方法: 使用window.scrollTo 通过调用windo…

vue 实现引导页面

vue 实现引导页面

Vue 实现引导页面的方法 使用专用引导库(如driver.js) 安装driver.js库,它专为引导功能设计,支持高亮元素、步骤提示和自定义样式。 npm install driver.js 在…