当前位置:首页 > VUE

node实现vue页面缓存

2026-01-22 02:14:17VUE

使用 keep-alive 组件实现缓存

在 Vue 中,可以通过 <keep-alive> 组件缓存动态组件或路由组件。在 template 中包裹需要缓存的组件:

<template>
  <keep-alive>
    <router-view v-if="$route.meta.keepAlive" />
  </keep-alive>
  <router-view v-if="!$route.meta.keepAlive" />
</template>

配置路由元信息

在 Vue Router 的路由配置中,通过 meta 字段标记需要缓存的页面:

node实现vue页面缓存

const routes = [
  {
    path: '/page1',
    component: Page1,
    meta: { keepAlive: true } // 启用缓存
  },
  {
    path: '/page2',
    component: Page2,
    meta: { keepAlive: false } // 不缓存
  }
];

结合 Vue 生命周期钩子

被缓存的组件会触发 activateddeactivated 钩子,可用于数据刷新或清理:

node实现vue页面缓存

export default {
  activated() {
    // 组件被激活时调用(从缓存中恢复)
    this.fetchData();
  },
  deactivated() {
    // 组件被停用时调用(进入缓存)
    this.clearTimer();
  }
};

动态控制缓存

通过 v-ifinclude/exclude 属性动态管理缓存:

<keep-alive :include="['Page1', 'Page2']">
  <router-view />
</keep-alive>
  • include:匹配组件名的白名单
  • exclude:匹配组件名的黑名单

Node 服务端配合

若需 SSR(服务端渲染),需在服务端模拟客户端缓存行为。例如,使用 lru-cache 库:

const LRU = require('lru-cache');
const cache = new LRU({ max: 100 });

app.use((req, res, next) => {
  const key = req.url;
  if (cache.has(key)) {
    return res.send(cache.get(key));
  }
  // 未命中缓存时继续渲染
  next();
});

缓存策略优化

  • 按需缓存:结合路由守卫动态设置 meta.keepAlive
  • 缓存清理:通过 this.$destroy() 强制销毁组件实例。
  • SSR 缓存:根据用户会话或页面特征设置缓存键,避免数据污染。

注意事项

  • 缓存可能导致内存增长,需合理设置缓存上限。
  • 表单输入等状态会被保留,需手动重置或监听路由变化。
  • 动态组件(如 :is)的缓存需确保组件名稳定。

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

相关文章

vue实现页面切换

vue实现页面切换

Vue 实现页面切换的方法 Vue 中实现页面切换通常使用 Vue Router,这是 Vue.js 官方的路由管理器。以下是几种常见的实现方式: 使用 Vue Router 的基本配置 安装 Vu…

实现vue页面回退

实现vue页面回退

使用 Vue Router 的编程式导航 在 Vue 组件中调用 this.$router.go(-1) 可以实现页面回退。该方法通过操作浏览器历史记录栈实现后退功能,类似于点击浏览器的后退按钮。…

react如何页面跳转

react如何页面跳转

React 页面跳转方法 在 React 中实现页面跳转有多种方式,具体取决于项目使用的路由库(如 React Router)或状态管理工具。以下是常见的几种方法: 使用 React Router…

jquery加载页面

jquery加载页面

jQuery 加载页面内容的方法 使用 .load() 方法 通过 AJAX 请求加载远程数据并插入到指定元素中。适用于加载部分页面片段。 $("#targetElement").load("ext…

uniapp结算页面

uniapp结算页面

uniapp 结算页面实现 页面布局设计 结算页面通常包含商品列表、价格汇总、收货地址和支付方式选择。使用 uni-list 组件展示商品信息,uni-forms 收集用户收货信息,radio-gro…

vue实现组件缓存

vue实现组件缓存

Vue 组件缓存的实现方法 在 Vue 中实现组件缓存通常使用 <keep-alive> 内置组件,它可以缓存不活动的组件实例,避免重复渲染和销毁。 基本用法 <keep-aliv…