有时我们在mouted方法中想通过id读取到一个dom元素,虽然官方并不推荐这种方法来操作dom。但难免有碰到这种情况,如下面
究其原因,还是该dom元素未在文档中生成。所以用document.getelementId 是无法获取到该元素的
解决方法
在vue文档中 关于的自定义指示器中有这么一段话
通过自定义指示器的insertd hook 我们可以捕获该元素被插入到父节点的时刻,做进一步处理
于是我们可以封装这么一个directive
然后在你需要捕获的dom元素中写入v-lazydom
只要在你包含该元素的组件中 定义一个lazyready 方法 便可获取到该元素
至少显得比直接使用settimeout干净点
如果你有多个元素需要捕获 的话,lazyready会触发多次,这时你可以通过捕获元素的id或者tag来区分,就不展开了