动态组件
多个组件使用同一个挂载点,并动态进行切换,这就是动态组件
:is 可以切换挂载的组件
将导入的多个组件一起导入
<component :is="comName"></component>
<template>
<div>
<button @click="comName = 'UserName'">账号密码填写</button>
<button @click="comName = 'UserInfo'">个人信息填写</button>
<p>下面显示注册组件-动态切换:</p>
<div style="border: 1px solid red;">
<component :is="comName"></component>
</div>
</div>
</template>
<script>
import UserName from '../components/01/UserName'
import UserInfo from '../components/01/UserInfo'
export default {
data(){
return {
comName: "UserName"
}
},
components: {
UserName,
UserInfo
}
}
</script>
组件缓存
组件切换会导致组件被频繁销毁和重新创建,性能不高
<div style="border: 1px solid red;">
<!-- Vue内置keep-alive组件, 把包起来的组件缓存起来 -->
<keep-alive>
<component :is="comName"></component>
</keep-alive>
</div>
keep-alivek可以提高组件的性能,内部包裹的标签不会被销毁和重新创建,触发激活和非激活的生命周期方法
激活和非激活
被缓存的组件不再创建和销毁,而是激活和非激活
2个钩子方法名:
activated —激活触发
deactiveted —失去激活状态触发
。。。。。。。。。。。。。。。。。。