vue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗
keep-aliv是Vue.js的一个内置组件。它能够不活动的组件实例保存在内存中,而不是直接将其销毁,它是一个抽象组件,不会被渲染到真实DOM中,也不会出现在父组件链中。
它有两个生命周期:
- activated: keep-alive组件激活时调用
- 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面试必看题 下载地址:百度网盘下载