异步组件懒加载 获取不到ref
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异步组件懒加载 获取不到ref相关的知识,希望对你有一定的参考价值。
参考技术A 关键字:获取不到ref,异步组件,$refs记一次异步组件导致的bug
目前这个bug只在打包环境出现,本地环境不出现,暂时不清楚什么原因
先解释一下什么是 异步组件 ,其实和vue-router的组件懒加载写法一样,只是应用在局部注册中而已
好处的话就是懒加载的好处,可以微略提高一些脚本速度。
由于我写的子组件需要调用组件内的一些methods来进行初始化,因此需要获取子组件的dom。和平常一样在mounted获取ref然后调用子组件的方法, 本地开发环境是没有问题的。
然后上线测试环境,怎么子组件没了,原来是$refs获取不到,子组件没办法初始化。
其实我找了半天,一直把关注点放在ref的获取上,无论怎么调整,加上$nextTick和settimeout都没有用,本地不重现线上重现,最后还是聚焦在子组件上,发现这种引入的方式会导致mounted之后也获取不到子组件的dom,切换回官方的就好了
子组件传出this代替refs获取
使用局部注册的方式
问题找到了,平时还是推荐使用官方推荐的 局部注册的方式 吧,否则需要关注其他注册方式子组件的生命周期是否正确。
以上是关于异步组件懒加载 获取不到ref的主要内容,如果未能解决你的问题,请参考以下文章
webpack性能优化:分隔/分包/异步加载+组件与路由懒加载
React18——setState变成异步——suspence组件懒加载结合异步数的传递