this.$nextTick理解

用法(来自官网):在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

有时候我需要获取一些组件,然后调用组件的一些东西,但是在初始化的过程中,这个组件还没有被渲染完成,也就是说无法调用,这个时候我们就可以使用这个方法的回调函数来进行获取。因为执行回调函数的之后dom已经更新循环结束,表示dom已经渲染完成。

举个比较明显的例子,就是这个ref,我我们使用子组件,并设置ref,然后就可以通过这个ref来调用子组件里面的一些方法。但是如果我们在create或者立即执行的watch里面进行调用的时候就会报出方法未定义,如下:

那么报出的异常是:

其实这个就是由于子组件还没有渲染完毕,直接调用就会导致异常的发生,所以我们将这两处的调用放在this.$nextTick(() => {})回调函数中,dom更新结束,就可正常的获取。

我这里有一个问题,有知道的,请帮忙回答一下:

如上所说,加入this.$nextTick(() => {})确实是可以成功,但是我发现有一种组件的导入方式,会导致这个方式的失败:

如果采用这种方式导入组件,即使使用this.nextTick还是会报出异常

但是如果才用这种导入方式就是正常的:

这个我不清楚是为什么,两种导入方式到底是有什么区别??????????????????????

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值