首页 > 其他分享 >动态缓存单个页面-vue3-实现思路

动态缓存单个页面-vue3-实现思路

时间:2024-03-13 11:29:54浏览次数:21  
标签:缓存 keepNameArray componentName 守卫 noKeepNameArray vue3 组件 any 页面

状态管理定义-全局状态属性

`keepNameArray` `noKeepNameArray`  (为数组)

动态组件缓存设置

<keep-alive :include="keepNameArray" :exclude="noKeepNameArray">
    <component :is="Component"/>
</keep-alive>

该文件获取keepNameArray和noKeepNameArray并使用watch监听变化及时更新

路由文件

使用`beforeEnter`全局前置守卫动态设置keepNameArray和noKeepArray

导航守卫 | Vue Router -- 全局前置守卫

样例

path: "",
name: "componentName",
component: () => import(""),
meta: { 
    title: "",
    keepAlive: true,
},
beforeEnter:(to: any, from: any)=>{
    changeAliveViews(["componentName"]);
}


changeAliveViews(componentName){
    动态处理keepNameArray和noKeepNameArray

    将componentName放到keepNameArray中,不需要的组件name放到noKeepNameArray中
}

组件文件

通过`beforeRouteLeave`组件内的路由守卫动态设置keepNameArray和noKeepArray

导航守卫 | Vue Router - 组件内的路由守卫

样例

beforeRouteLeave: (to: any, from:any)=>{
    动态处理keepNameArray和noKeepNameArray
    
    将该组件name移除keepNameArray放到nokeepNameArray中
},

标签:缓存,keepNameArray,componentName,守卫,noKeepNameArray,vue3,组件,any,页面
From: https://blog.csdn.net/zheng_yang_liu/article/details/136673918

相关文章

  • Vue3 组合函数 element-plus table数据滚动播放
    Vue滚动播放组合函数import{onMounted,onUnmounted}from"vue";exportfunctioncreateScroll(tableRef){lettimer=null;functionstartScroll(){consttable=tableRef.value.layout.table.refs;consttableWrapper=table.bodyWrapper.f......
  • vue3的路由拦截?
    在Vue.js中,可以使用路由拦截器(RouteInterceptors)来实现对路由的拦截和控制。通过路由拦截器,我们可以在路由导航过程中进行一些操作,如验证用户身份、权限控制、重定向等。VueRouter提供了全局前置守卫(GlobalBeforeGuards)、路由独享守卫(Per-RouteGuards)和组件内的守卫(In......
  • Vue3——集成mock 模拟数据生成器
    安装依赖[email protected]在vite.config.js文件中引入并配置vite-plugin-mock插件import{UserConfigExport,ConfigEnv}from'vite'import{viteMockServe}from'vite-plugin-mock'importvuefrom'@vitejs/plugin-......
  • 【Lazy ORM】 小工具 acw 本地客户端 你负责点击页面,他负责输出代码
    介绍wu-smart-acw-client简称acw-client,是一个基于LazyORM定制的客户端代码生成小工具LazyORM小工具acw本地客户端你负责点击页面,他负责输出代码安装<dependency><groupId>top.wu2020</groupId><artifactId>wu-smart-acw-cli......
  • 创建Vue3项目,更多参考vue官网
     一、环境:1、Node版本(node-v命令查询,参考则是需要18.0及以上)C:\Users\86176>node-vv16.14.0后续又重新下载nvm进行新的版本安装,这里后面安装的19.0的也有错误,安装18.19.12、vue-cil版本(vue-V命令可查询电脑版本,参需3.0以上)C:\Users\86176>vue-V@vue/cli5.0.83、其他......
  • 微信小程序之导出页面为doc文件
    微信小程序:需求将一个类似报表的页面点击下载导出问xxx.doc文件。1.写入文件导出由于微信小程序的限制;将导出的功能放到node服务上。使用fs直接将html文本模板写入doc文件后返回下载地址 //生成下载文件,并返回名称app.post('/getFile',(req,res)=>{constdata......
  • vue3+elementplus(ElementUI)入门案例
    1、配置脚手架,已配置则无需再配npminstall-gvue-cli2、创建空文件夹,用vscode打开,并在vscode终端执行如下命令vuecreateXXXcdXXX3、安装elementplus插件,注意:vue3需要搭配elementplus使用,elementplus是elementui的升级版,需搭配vue3使用(初学者建议直接学vue3+elemen......
  • 基于Vue(提供Vue2/Vue3版本)和.Net Core前后端分离、跨平台的快速开发框架
    前言今天大姚给大家推荐一款基于Vue(提供Vue2/Vue3版本)和.NetCore前后端分离、开源免费(MITLicense)、强大、跨平台的快速开发框架,并且框架内置代码生成器(解决重复性工作,提高开发效率),支持移动端(iOS/Android/H5/微信小程序):Vue.NetCore。提高开发生产效率、避免996可以考虑试试这......
  • VUE3将时间戳转换为时间格式
     formatDate(time){constdate=newDate(time*1000);constyear=date.getFullYear();constmonth=String(date.getMonth()+1).padStart(2,'0');//月份从0开始,所以加1,并用0填充constday=String(date.getDate()).padStart(2,&#......
  • Vue3中使用TinyMce编辑器
    在线演示地址:TinyMce编辑器邮件发送一,安装TinyMce富文本npminstall@tinymce/tinymce-vue-Snpminstalltinymce-STinyMce本身是英文编辑器,所以还需要下载中文本地化文件:https://www.tiny.cloud/get-tiny/language-packages/下载完成后放入node_modules下的tinymce文......