vue mounted周期中document.querySelectorAll()获取不到元素的解决

 更新时间:2024年03月06日 10:11:36   作者:落雪bin飞  
这篇文章主要介绍了vue mounted周期中document.querySelectorAll()获取不到元素的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

mounted周期document.querySelectorAll()获取不到元素

在mounted阶段,若需要获取的元素或组件有v-if,v-for属性。

  • v-if的初始化结果为false。
  • v-for遍历的数组初始化阶段无值。

(即mounted阶段后,根据获得的后台数据来动态操作dom)这两种情况都会导致mounted阶段获取元素的语句获取不到dom。

解决方案

1、把获取元素的语句放在异步获取到数据,赋值给data中的key之后进行。同时需要给获取元素的语句加上setTimeout。因为setTimeout是宏任务,会在vue的render函数执行之后再执行。

2、把获取元素的语句放到updated周期中执行。这种情况下每次视图更新之后都会执行一次获取元素的语句,如果不需要每次视图更新之后都执行,可以在mounted周期中,使用this.$once("hook: updated", function() {...}) ,让获取元素的语句只在updated阶段执行一次。

TypeError: this.$el.querySelectorAll is not a function报错

在渲染权限tree时出现

TypeError: this.$el.querySelectorAll is not a function

最后反复检查代码发现elementui中有个default-checked-keys(默认勾选的节点的 key 的数组)

我们在绑定的时候一定要动态绑定也就是:default-checked-keys

总结

希望以后不要折磨粗心啦~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)

    vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)

    这篇文章主要介绍了vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流),本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • Vue中虚拟DOM的简单实现

    Vue中虚拟DOM的简单实现

    Vue中的虚拟DOM是通过JavaScript对象来描述真实DOM结构的一种方式,本文将介绍Vue中虚拟DOM的简单实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-05-05
  • Vue项目中使用addRoutes出现问题的解决方法

    Vue项目中使用addRoutes出现问题的解决方法

    大家应该都知道可以通过vue-router官方提供的一个api-->addRoutes可以实现路由添加的功能,事实上就也就实现了用户权限,这篇文章主要给大家介绍了关于Vue项目中使用addRoutes出现问题的解决方法,需要的朋友可以参考下
    2021-08-08
  • vue实现下拉加载其实没那么复杂

    vue实现下拉加载其实没那么复杂

    这篇文章主要给大家介绍了关于vue实现下拉加载的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • Vue slot插槽作用与原理深入讲解

    Vue slot插槽作用与原理深入讲解

    插槽slot可以说在一个Vue项目里面处处都有它的身影,比如我们使用一些UI组件库的时候,我们通常可以使用插槽来自定义我们的内容,这篇文章主要介绍了Vue3中slot插槽使用方式,需要的朋友可以参考下
    2023-01-01
  • Vue数据双向绑定的深入探究

    Vue数据双向绑定的深入探究

    这篇文章主要给大家介绍了关于Vue数据双向绑定的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • vue使用wavesurfer.js解决音频可视化播放问题

    vue使用wavesurfer.js解决音频可视化播放问题

    Wavesurfer.js是一款基于HTML5 canvas和Web Audio的声纹可视化插件,功能十分强大,在Vue框架中嵌入使用该插件,今天重点给大家介绍下vue使用wavesurfer.js解决音频可视化播放问题,感兴趣的朋友一起看看吧
    2022-04-04
  • nuxt框架中路由鉴权之Koa和Session的用法

    nuxt框架中路由鉴权之Koa和Session的用法

    后台管理页面需要有登录系统,所以考虑做一下路由鉴权,这篇文章主要介绍了nuxt框架中路由鉴权之Koa和Session的用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • vue 使用el-table循环轮播数据列表的实现

    vue 使用el-table循环轮播数据列表的实现

    这篇文章主要介绍了vue 使用el-table循环轮播数据列表的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue实现用v-bind给src和href赋值

    vue实现用v-bind给src和href赋值

    这篇文章主要介绍了vue实现用v-bind给src和href赋值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04

最新评论