vue学习-14vue的路由缓存组件以及activated和deactivated生命周期钩子

本文主要是介绍vue学习-14vue的路由缓存组件以及activated和deactivated生命周期钩子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Vue.js中,使用路由的内置特性来控制组件的缓存,以提高应用程序性能。默认情况下,Vue Router不会缓存组件,但你可以通过以下方式启用组件缓存:

<keep-alive> 组件:<keep-alive> 是Vue.js的内置组件,可以用来缓存被包裹的组件。你可以将需要缓存的组件包裹在<keep-alive> 标签内。例如:

<router-view><keep-alive><component-to-cache></component-to-cache></keep-alive>
</router-view>//也可以变成
<!-- 路由组件(缓存)标签,include属性指定要缓存路由的组件名(缓存单个路由) -->
<keep-alive include="News">
<!-- 路由显示标签 --><router-view></router-view>
</keep-alive>
<!-- 缓存多个路由组件 -->
<!-- <keep-alive :include="['News','Message']"><router-view></router-view>
</keep-alive> -->

在这个示例中,<component-to-cache> 组件会被缓存,当你导航到其他页面再返回时,它的状态将保持不变。这样的情况我们实际在项目开发中经常会碰到这样的需求,当我跳转到另一个页面的时候,我想要返回到跳转到之前的页面,就可以利用路由缓存组件来完成。

路由配置中启用缓存:你也可以在Vue Router的路由配置中为特定路由启用缓存。通过在路由对象中使用 meta 属性,你可以定义一个 keepAlive 属性来启用或禁用缓存。例如:

const routes = [{path: '/some-route',component: SomeComponent,meta: {keepAlive: true, // 启用缓存},},// 其他路由配置
];

在这种情况下,当导航到 /some-route 时,SomeComponent 组件将被缓存。

利用vue第12篇 中的Home.vue文件

<template><div><h2>Home组件内容</h2><div><ul class="nav nav-tabs"><li><router-link class="list-group-item" active-class="active" to="/home/news">News</router-link></li><li><router-link class="list-group-item" active-class="active" to="/home/message">Message</router-link></li></ul><!-- 路由组件(缓存)标签,include属性指定要缓存路由的组件名(缓存单个路由) --><keep-alive include="News"><!-- 路由显示标签 --><router-view></router-view></keep-alive><!-- 缓存多个路由组件 --><!-- <keep-alive :include="['News','Message']"><router-view></router-view></keep-alive> --></div></div>
</template><script>export default {name: 'Home'}
</script><style></style>

vue的activated和deactivated生命周期钩子

==“activated” ==和 ==“deactivated” ==是组件的生命周期钩子,用于管理组件在激活和停用时的行为。这些钩子通常与Vue组件的路由相关,用于处理路由切换时的特定操作。

activated钩子:当一个使用Vue Router的路由进入到包含该组件的路由时,activated钩子会被触发。这通常用于执行需要在组件激活时进行的操作,例如数据加载或动画启动。例如,你可以在activated钩子中加载组件所需的数据。

export default {activated() {// 在组件被激活时执行的代码},
}

deactivated钩子:当一个路由离开包含该组件的路由时,deactivated钩子会被触发。这通常用于执行需要在组件停用时进行的清理操作,例如取消订阅或释放资源。

export default {deactivated() {// 在组件被停用时执行的代码},
}

这些钩子允许你在路由切换时管理组件的状态和行为,以提供更好的用户体验。请注意,这些钩子只在使用Vue Router进行路由管理时才会生效,如果你没有使用Vue Router,这些钩子可能不会生效
News.vue

<template><ul><li :style="{opacity}">欢迎学习Vue</li><li>news001 <input type="text" value=""/></li><li>news002 <input type="text" value=""/></li><li>news003 <input type="text" value=""/></li></ul>
</template><script>export default {name:'News',data() {return {opacity:1}},// beforeDestroy(){//     console.log("News组件即将被销毁了!!!");//     clearInterval(this.timer);// },// mounted(){//     this.timer=setInterval(() => {//         console.log("@@@@@@");//         this.opacity-=0.01;//         if (this.opacity<=0) {//             this.opacity=1;//         }//     }, 16);// }activated(){//新的生命周期钩子函数是路由组件独有的(激活路由的意思)console.log("News组件被激活了!!!");this.timer=setInterval(() => {this.opacity-=0.01;if (this.opacity<=0) {this.opacity=1;}}, 16);},deactivated(){//路由组件独有的生命周期钩子函数(取消激活路由的意思)console.log("News组件失活了!!!");clearInterval(this.timer);}}
</script><style></style>

这篇关于vue学习-14vue的路由缓存组件以及activated和deactivated生命周期钩子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/187909

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给