动态组件
当多个不同的组件之间进行频繁切换时,使用v-if处理会比较麻烦,vue提供了一个更简便的方法来处理
component
:vue
的一个内置组件,它会提供一个is属性来动态渲染不同组件
区别:
1.v-if
组件切换的方式是创建和销毁(导致组件的状态不能留存)
2.v-show
组件切换的方式是显示和隐藏(Dom树结构不变)
3.component
组件切换的方式是激活和冻结(既改变Dom树结构,又不销毁元素)
使用场景:选项卡
单独使用
component
时,会频繁的触发组件的创建和销毁,性能不好,且会丢失组件状态
keep-alive
一个内置容器组件,使用后,内部包含的组件将增加激活和冻结状态
作用:保持组件状态,避免反复渲染导致的性能问题
keep-alive
会触发activated
和deactivated
两个生命周期函数
组件激活时调用activated
组件冻结时调用deactivated