美文网首页工作生活
对keep-alive 的了解

对keep-alive 的了解

作者: 没有卢果 | 来源:发表于2019-07-03 10:26 被阅读0次

    <keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。

    <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。

    <keep-alive><transition>相似,只是一个抽象组件,它不会在DOM树中渲染(真实或者虚拟都不会),也不在父组件链中存在,比如:你永远在 this.$parent 中找不到 keep-alive

    keep-alive生命周期钩子函数:activated、deactivated

    使用<keep-alive>会将数据保留在内存中,如果要在每次进入页面的时候获取最新的数据,需要在activated阶段获取数据,承担原来created钩子中获取数据的任务。

    被包含在 <keep-alive> 中创建的组件,会多出两个生命周期的钩子: activateddeactivated

    activated:在组件被激活时调用,在组件第一次渲染时也会被调用,之后每次keep-alive激活时被调用。

    deactivated:在组件被停用时调用。

    注意:只有组件被 keep-alive 包裹时,这两个生命周期才会被调用,如果作为正常组件使用,是不会被调用,以及在 2.1.0 版本之后,使用 exclude 排除之后,就算被包裹在 keep-alive 中,这两个钩子依然不会被调用!另外在服务端渲染时此钩子也不会被调用的。

    什么时候获取数据?

    当引入keep-alive 的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。

    相关文章

      网友评论

        本文标题:对keep-alive 的了解

        本文链接:https://www.haomeiwen.com/subject/inofhctx.html