1、首先准备前期环境,路由配置及界面配置

const addRouters: Array<RouteRecordRaw> = [{//路由path:'/',name:'home',component:() => import('@/views/home/home.vue'),children:[{path:'/',redirect:'/A'},{path:'/A',name:'A',component:() => import('@/views/A/A.vue')},{path:'/B',name:'B',component:() => import('@/views/B/B.vue')},{path:'/C',name:'C',component:() => import('@/views/C/C.vue')},{path:'/D',name:'D',component:() => import('@/views/D/D.vue')}]
}]
<template><div class="home"><div class="router-btn"><el-button type="primary" @click="routerTo('A')" size="small">路由A</el-button><el-button type="success" @click="routerTo('B')" size="small">路由B</el-button><el-button type="warning" @click="routerTo('C')" size="small">路由C</el-button><el-button type="danger" @click="routerTo('D')" size="small">路由D</el-button></div><div class="router-view"><router-view class="box"></router-view></div></div>
</template><script lang="ts">
import { defineComponent } from 'vue';
import { useRouter } from 'vue-router';export default defineComponent({name:'home',setup () {const router = useRouter();//使用路由const routerTo = (path:string) => {router.push({name:path});}return {routerTo}}
})
</script><style scoped lang='scss'>.home{display: flex;flex-flow: column;.router-btn{padding: 10px;box-sizing: border-box;}.router-view{border-top: 1px solid #d8d8d8;flex:1;}}
</style>

效果图:

2、接下来我们根据上面的前期条件,加入keep-alive,实现路由缓存

//home.vue中
<!-- 使用路由缓存 --><router-view class="box" v-slot={Component}><keep-alive><component :is="Component" /></keep-alive></router-view>
<!-- 使用路由缓存 -->
<template><div>路由B<p>{{num}}</p></div>
</template><script lang="ts">
import { defineComponent, ref } from 'vue'export default defineComponent({name:'B',setup () {const num = ref<number>(0);setInterval(() => {num.value++;},1000);return {num}}
})
</script><style scoped></style>

3、经过上面改版,现在切换路由已经有了缓存

4、使用exclude,除了组件B,其余组件缓存,include就是包含的组件需要缓存

<!-- 使用路由缓存 -->
<router-view class="box" v-slot={Component}><keep-alive :exclude="['B']"><component :is="Component" /></keep-alive>
</router-view>
<!-- 使用路由缓存 -->

vue3中keep-alive及include/exclude的使用相关推荐

  1. vue3中keep-alive路由缓存

    在vue3中我是用keep-alive的include属性不生效,然后我就在component组件下使用v-if了,配合vuex的store,将需要缓存的路由名字放在数组中如下: <templa ...

  2. cisco中的管道符号(include begin section)

    首先说一下路由器命令输出过滤的语法:任意show命令+管道符|+过滤器 这里的过滤器包括以下三种: include和exclude:显示包含或者不包含特定正则表达式的行 begin:从符合特定正则表达 ...

  3. web前端培训分享:使用Dplayer实现Vue3中的视频及弹幕播放

    Dplayer是一款上手简单,功能强大的HTML5视频播放器,我们可以使用它,快速在普通HTML.Vue.React中实现视频播放的功能需求.Dplayer同时也提供了目前各大视频站都在使用的弹幕功能 ...

  4. 中input怎么接受后台传值_[vue3]如何在vue3中优雅地使用vmodel?

    Vue中的数据绑定 绑定数据有三种方式: 插值,也就是{{name}}的形式,以文本的形式和实例data中对应的属性进行绑定 v-bind v-model v-bind eg:v-bind:class ...

  5. Webpack的代码分包Vue3中定义异步组件分包refs的使用

    一.默认的打包过程: 默认情况下,在构建整个组件树的过程中,因为组件和组件之间是通过模块化直接依赖的,那么webpack在打包时就会将组件模块打包到一起(比如一个app.js文件中): 这个时候随着项 ...

  6. vue3中v-model的重大更新

    一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件 Vue.component('custom-input', {props: ['value'],te ...

  7. vue3 中使用动画技术

    vue3 中使用动画技术 作者: jcLee95 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.net/qq_28550263?spm=1001.21 ...

  8. Vue3中的父子、子父组件通信

    Vue3中的父子.子父组件通信方式总结 李俊才的CSDN博客 CSDN用户名:jcLee95 邮箱:291148484@163.com 1. 父组件 => 子组件 | 使用props 父组件(分 ...

  9. vue3中 v-md-editor 编辑器的基本使用分享

    vue3中 v-md-editor 编辑器的基本使用分享 安装 (2.3.15以上) # npm npm install @kangc/v-md-editor -S # yarn yarn add @ ...

  10. vue3中的provide/inject(提供/注入)

    vue3中的provide/inject(提供注入) 在说provide/inject先说一下prop逐级穿透问题. 通常我们从父组件向子组件传递数据时,会用到props.对于只需要传递一层或二层时还 ...

最新文章

  1. 2019年春节记忆之尹山湖边赏梅
  2. Python3 操作符重载方法
  3. JavaScript 数组拼接打印_巧用控制台,提升JavaScript调试性能
  4. [ZT]恐怖“标语”
  5. ***CSS3 Gradient渐变色(转:http://www.w3cplus.com/content/css3-gradient)
  6. Java I/O之字节流与字符流的区别
  7. 开源WinForms界面开发框架Management Studio 选项卡文档 插件 Office 2007蓝色风格 后台线程...
  8. HTML5期末大作业 漫画网站设计——动漫海贼王(10页) 动漫网页设计制作 简单静态HTML网页作品 动漫网页作业成品 学生动漫网站模板
  9. 【Computeshader】个人总结
  10. 【63测试20161111】【BFS】【DP】【字符串】
  11. kuberntes集群不能解析service ip故障排查记录
  12. Java实现统计字符次数(按大写、小写、数字来统计)
  13. 考勤 日历 ajax,vue实现钉钉的考勤日历
  14. 泛型中的类型擦除和桥方法
  15. 杰理之AUX/LINEIN 设计注意【篇】
  16. iOS 16测试版目前已知问题和Bug汇总
  17. Spring Security进行登录认证和授权
  18. 练习:求高次方的尾数(末三位)
  19. 【算法类原创】层次分析法的内涵
  20. 组播——IGMP协议讲解

热门文章

  1. C:\windows\system32文件
  2. 华为服务器不显示硬盘,服务器读取不到硬盘
  3. 明哥-带你三步开发JavaSE跨平台视频播放器
  4. Java实现月工资个人所得税及各保险计算问题(2022年版)
  5. 蚂蚁金服上市,别人家的程序员已经实现财富自由!
  6. 计算机考证除了软考还有什么(全)
  7. mysql中约束性别_MySQL常见约束
  8. 带你由浅入深探索webpack4(二)
  9. 解决mendeley文献管理软件无法显示部分文献中文的办法
  10. 读《小王子三部曲-夜间飞行》有感