Vue中 key keep-alive的实现原理

Posted yedda

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中 key keep-alive的实现原理相关的知识,希望对你有一定的参考价值。

vue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗

keep-aliv是Vue.js的一个内置组件。它能够不活动的组件实例保存在内存中,而不是直接将其销毁,它是一个抽象组件,不会被渲染到真实DOM中,也不会出现在父组件链中。

它有两个生命周期:

  1. activated: keep-alive组件激活时调用
  2. deactivated: keep-alive组件停用时调用

它提供了include与exclude两个属性,允许组件有条件地进行缓存。

keep-alive key

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE html>
<html>
<head>
  <title></title>
  <script type="text/javascript" src="./vue.js"></script>
</head>
<body>
  <div id="app">
    <keep-alive>
      <child-component key="1" v-if="seen" name="1"></child-component>
      <child-component key="2" v-if="!seen" name="2"></child-component>
    </keep-alive>
    <button @click="toggle">toggle</button>
  </div>
  <script type="text/javascript">
    Vue.component(‘child-component‘, {
      template: `<input type="text" placeholder="enter">`,
      data() {
        return {}
      },
      props: ["name"],
      mounted() {
        console.log(`${this.name} mounted`)
      }
    })
    const vm = new Vue({
      el: "#app",
      data: {
        seen: true
      },
      methods: {
        toggle() {
          this.seen = !this.seen;
        }
      }
    })
  </script>
</body>
</html>

key是标识元素不再被复用,注意key是Vue中的一个保留的属性,不能作为prop传递给子组件,否则会在控制台看到Vue的报错

但是keep-alive标识不重复创建组件实例,也就是只会触发一次created mounted事件,

利用两者可以对组件的复用进行比较精细的管理。

 

ios数据存储技术开发视频教程 12课 附源码课件    下载地址:百度网盘下载

IOS界面开发UIKit详细使用视频教程 43课 附源码讲义    下载地址:百度网盘下载
IOS9零基础到精通大神班视频教程 包含源码课件面试题就业指导    下载地址:百度网盘下载
IOS培训班第四期 基础+就业班 完整高清版    下载地址:百度网盘下载
IOS培训班第六期 包含源码课件面试资料    下载地址:百度网盘下载
IOS培训班第五期【完整版】    下载地址:百度网盘下载
IOS多点触控与手势识别开发视频教程 10课 附源码    下载地址:百度网盘下载
中游学院Swift语言视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
极客ios开发工程师 全套视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
开源力量iOS开发从OC到Swift入门与修炼 视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
iOS常用UI控件使用速成秘籍 视频教程 教学视频 百度网盘下载    下载地址:百度网盘下载
IOS视频教程 全套编程自学基础入门app手机应用开发游戏项目实战    下载地址:百度网盘下载
IOS(iPhone)开发中级视频教程    下载地址:百度网盘下载
IOS开发实战视频教程    下载地址:百度网盘下载
小码哥大神班IOS五期不加密版本    下载地址:百度网盘下载
小马哥IOS9 苹果APP开发实战培训基础大神班视频教程    下载地址:百度网盘下载
黑马程序员iOS视频开发教程/李明杰    下载地址:百度网盘下载
IOS开发技术教程 极客学院最新IOS开发技术VIP教程入门到精通教程    下载地址:百度网盘下载
iOS中级视频教程    下载地址:百度网盘下载
iOS面试必看题    下载地址:百度网盘下载

 



















以上是关于Vue中 key keep-alive的实现原理的主要内容,如果未能解决你的问题,请参考以下文章

vue中的keep-alive使用总结

vue keep-alive

聊聊keep-alive组件的使用及其实现原理

通俗易懂了解Vue内置组件keep-alive内部原理

keep-alive实现原理

vue使用keep-alive实现页面前进刷新,后退缓存