持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情juejin.cn/post/714765…
- 动态组件类似于条件渲染的组件,面试的时候不要这样说,只不过从表现形式上来说。
- 动态组件切换的话是组件被销毁了。动态组件做tab标签页更拿手
什么功能里用动态组件?
一般都是tab标签页使用动态组件。侧导航尽量不要使用动态组件,应该用路由。
怎么实现动态组件?
就是用一个<component :is="data里定义的变量,"></component>标记就可以实现,如下
- is的值是组件名,这块是哪个组件名,就渲染哪个组件。
- is的值可以是已注册组件的组件名或者是一个组件
export出来的对象 - 动态组件实际上是对组件的销毁和重建的过程。被销毁的组件之前的所有操作记录都被销毁,重建时不会保留之前的数据。
优势组件有二级项页面展示,例如a有二级项,现在是被打开的状态,然后切换到b组件,在切换回a组件,这时,a组件就会恢复到默认样式,如果想让a组件处在切换之前的样式展示,就要用到
<keep-alive>标记
<keep-alive>缓存动态组件
<keep-alive>标记的作用:不会销毁组件,会把组件保存到内存中,是把ui的位置销毁了,这样的话,把ui进行重新渲染一下,就可以保留被销毁组件的数据。- 用法:用
<keep-alive>把<component/>包裹起来 - 包裹动态组件时,会缓存不活动的组件,而不是销毁它们。
- 的三个属性
- 属性1:include=“组件名”只缓存指定的组件
- 属性2:exclude=“组件名”不缓存指定的组件
- 属性3:max=“数字”,设置最多缓存多少个组件
异步组件
- 指的就是异步加载组件。
- react组件中引入是同步组件,会先读取引入的组件,保存在内存中,然后再去执行创建class或者函数式组件。
- 大多数异步加载组件用在切换路由的时候
异步组件的话,需要使用es6模块中的import()方法引入,它的返回值是promise,所以可以与async函数进行结合使用。
当你处在a页面的时候,b页面有异步引入的组件,那么b页面先不去加载这个异步组件,当跳转到b页面的时候再去加载这个异步组件。