搞明白activated和deactivated

搞明白activated和deactivated文章目录写到前面什么是 activatedact 解决了一个什么问题 Demomain vueassembly1 组件 1 assembly2 组件 2 执行结果要点速记个人建议写到最后写到前面今天简单的将 activated 讲一下 前面有人问了 既然有问的 说明还有人不是很明白的 这里就说一下吧 什么是 activated 首先要确定一个点就是他也是属于 vue 生命周期中的一个 为什么我们平常说的生命周期没有它呢 我们平常说的生命周期就是 created update mounted destory

写到前面

今天简单的将activated讲一下,前面有人问了,既然有问的,说明还有人不是很明白的,这里就说一下吧!

什么是activated

首先要确定一个点就是他也是属于vue生命周期中的一个,为什么我们平常说的生命周期没有它呢?我们平常说的生命周期就是created,update,mounted,destory和他们的之前之后的状态,当我们去查的activated的时候发现没有,但是会在官方的keep-alive中发现他的身影和介绍,知道你们不想找,点击它吧,说白了就是我们直接切换组件的时候,组件的钩子函数会对应的触发,比如进来的时候出现created,离开的时候出现destory这样的,那么当我们使用缓存的时候,也就是keep-alive的时候,我们正常的钩子函数就没办法执行了,这个时候activated和deactivated就会执行。

activated解决了一个什么问题

既然在文档上给他一席之地,说明他肯定是由自己存在的必要的,我们假设一种情况,我们做一个项目的时候,一个功能是引用了组件中的数据,这个时候我们需要每次进去的时候都最新的值给传递过去,更新掉,我们有几种办法,目前是三种,第一种是我们直接将数据作为参数,进行父子数据的传递,第二种办法是使用vuex状态管理这个值,进行全局一个状态管理,也是可以实现的,第三种就是我们将组件缓存,使用keep-alive,但是数据传递过去不会更新,因为created和mounted不执行,怎么办呢?这个时候就可以使用我们的activated进行更新我们的数据!

Demo

main.vue
 
     
assembly1(组件1)
 
     
assembly2(组件2)
 
     

执行结果

  • 第一次运行
    在这里插入图片描述

  • 第二次运行
    在这里插入图片描述

要点速记

  • activated和deactivated是配合keep-alive一起使用的
  • activated和deactivated没有keep-alive的时候是不会被触发的
  • 在存在keep-alive的时候可以将activated当作created进行使用
  • deactivated是组件销毁的时候触发,此时的destory是不执行的

个人建议

将上面的几种情况自己模拟看一下,就会明白了!

写到最后

相信这个例子你们应该可以直接明白怎么回事了,我也不废话了,这个东西我想了一下要不要写一篇文章出来,但是呢,我觉得我之前想的都是错的,我一直认为只要是我个人觉得很简单的,我觉得你们都会了,所以很多时候我都不会去写博客,后来发现很多东西可能我遇到了你们没有遇到,让我觉得你们也遇到过,所以这个误会直接导致我很少更新博客了,以后尽量更新多一些内容。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226691.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:20
下一篇 2026年3月16日 下午10:21


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号