06 vue3 动态组件 keep-alive 异步组件 Suspense $refs 生命周期 mixin extends

动态组件

当需要渲染的组件不是固定的,可以使用动态组件

动态组件是使用 component 组件,通过一个特殊的attribute is 来实现:

is绑定的值:使用component函数注册的全局组件,

或者在当前组件对象的components对象中注册的组件

动态组件父子通信:和使用普通组件一样,将需要传递的数据及监听的事件放到component组件上

 keep-alive

keep-alive也是vue内置的组件称为缓存组件,作用是保存当前组件的状态,不被销毁掉

常与动态组件,router-view一起使用

 这样在组件间来回切换,组件不会销毁与重建,会保持状态

keep-alive属性

 

 缓存组件的生命周期

 异步组件

vue-cli是基于webpack的,当我们打包时,如果没有进行配置,会把所有组件打包到一个app.js文件夹中,当首次渲染时,需要把整个app.js下载下来,造成首屏渲染较慢

webpack的分包

 vue中使用异步组件

我们的项目过大了,对于某些组件我们希望通过异步的方式来进行加载(目的是可以对其进行分包处理),那 么Vue中给我们提供了一个函数:defineAsyncComponent

 Suspense

Suspense意思是悬疑的,悬而未决的,常与异步组件一起使用

 $refs $parent和$root

$refs

vue不推荐我们直接操作dom,当我们想操作元素或者组件时,可以使用$refs

组件实例都有一个$refs属性,是一个对象,持有注册过 ref attribute 的所有 DOM 元素和组件实例。

 

 $parent

$parent访问父元素

$root 访问根元素

注意:在Vue3中已经移除了$children的属性,所以不可以使用了。

生命周期

每个组件都可能会经历从创建、挂载、更新、卸载等一系列的过程,叫做生命周期

生命周期函数是一些钩子函数,在某个时间会被Vue源码内部进行回调; 通过对生命周期函数的回调,我们可以知道目前组件正在经历什么阶段; 那么我们就可以在该生命周期中编写属于自己的逻辑代码了

mixin 

代码共享的一种方式(不是数据共享,只是代码共享,让你少些代码,合并到optionsAPI中)

组件和组件之间有时候会存在相同的代码逻辑,我 们希望对相同的代码逻辑进行抽取

 Mixin的合并规则

生命周期会放到一个数组中全部调用

data:data中数据名重复,肯定使用当前组件自己的

methods,components:key重复,用自己的

全局混入mixin

当所有组件都有共同代码,可以使用全局混入

全局的Mixin可以使用 应用app的方法 mixin 来完成注册

 extends(了解)

extends也是做代码复用的,算是一个历史遗留问题,刚推出时不好用,就又推出了mixin

用法与mixin类似,template不会继承,推荐大家使用mixin

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值