iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue3中ref绑定dom或组件失败如何解决
  • 237
分享到

vue3中ref绑定dom或组件失败如何解决

2023-07-06 10:07:32 237人浏览 独家记忆
摘要

本文小编为大家详细介绍“vue3中ref绑定dom或组件失败如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue3中ref绑定dom或组件失败如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue

本文小编为大家详细介绍“vue3中ref绑定dom或组件失败如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue3中ref绑定dom或组件失败如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    vue3 ref绑定dom或者组件失败原因分析

    场景描述

    在vue3中经常用到使用ref绑定组件或者dom元素的情况,很多时候,明明使用ref绑定了相关组件,但是经常ref绑定失败的情况。

    ref绑定失败情况举例

    ref绑定失败的绝大多数情况是,在ref和组件绑定的时候,该组件还未渲染,所以绑定失败。

    或者组件刚开始未渲染,ref未绑定,当组件开始渲染,ref也开始绑定,但是ref和组件并未绑定完成,这个时候使用组件相关的方法就会出现问题。

    • ref绑定的组件使用了v-if,或者他的父组件使用了v-if导致页面开始渲染的时候,这些组件并没有渲染,所以绑定失败。

    • element-plus中有很多 dialog弹窗等组件,这些组件开始是隐藏的,只有用户点击了按钮才展示,所以很多时候是在用户点击按钮的时候,ref才开始和组件绑定,这个时候绑定还未完成,我们通过ref的变量使用组件的方法,就会出现Uncaught TypeError: Cannot read properties of null (reading 'setCheckednodes')的错误

    vue3中ref绑定dom或组件失败如何解决

    解决方案

    使用vue3的nextTick方法,让调用ref组件方法的逻辑放到下一个时间片执行即可。(推荐

    function addFilterPropertyRule(row) {    let ruleParamObj = JSON.parse(row.hardwareParam)    if (ruleParamObj) {        makePropertityTree(ruleParamObj, treeData)    }    addOrEditRuleVisible.value = true    currentRuleItem = row    if (row.rulejson) {        nextTick(() => {            treeRef.value.setCheckedNodes(JSON.parse(row.ruleJson), false)        })    }}

    使用一个延时定时器,让调用ref组件方法的逻辑等一会再执行。(不推荐)

    vue3组合式api的v-for及ref绑定DOM

    组合式 API 模板引用在 v-for 内部使用时没有特殊处理。需要绑定函数自定义处理。

    <template>  <div v-for="(item, i) in list" :ref="el => { if (el) divs[i] = el }">    {{ item }}  </div></template> <script>  import { ref, Reactive, onBeforeUpdate } from 'vue'   export default {    setup() {      const list = reactive([1, 2, 3])      const divs = ref([])       // 确保在每次更新之前重置ref      onBeforeUpdate(() => {        divs.value = []      })       return {        list,        divs      }    }  }</script>
    • Ref

    <template>   <div ref="root">This is a root element</div></template> <script>  import { ref, onMounted } from 'vue'   export default {    setup() {      const root = ref(null)       onMounted(() => {        // DOM 元素将在初始渲染后分配给 ref        console.log(root.value) // <div>This is a root element</div>      })       return {        root      }    }  }</script>

    读到这里,这篇“vue3中ref绑定dom或组件失败如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: vue3中ref绑定dom或组件失败如何解决

    本文链接: https://www.lsjlt.com/news/357916.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • vue3中ref绑定dom或组件失败如何解决
      本文小编为大家详细介绍“vue3中ref绑定dom或组件失败如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3中ref绑定dom或组件失败如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。vue...
      99+
      2023-07-06
    • vue3中ref绑定dom或者组件失败的原因及分析
      目录vue3 ref绑定dom或者组件失败原因分析场景描述ref绑定失败情况举例解决方案vue3组合式API的v-for及ref绑定DOM总结vue3 ref绑定dom或者组件失败原...
      99+
      2023-05-16
      vue3 ref ref绑定dom失败 ref绑定组件失败
    • docker运行nginx绑定配置文件失败如何解决
      这篇文章主要介绍了docker运行nginx绑定配置文件失败如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇docker运行nginx绑定配置文件失败如何解决文章都会有所收获,下面我们一起来看看吧。直接执...
      99+
      2023-07-05
    • vue中花括号数据绑定失败如何解决
      这篇文章将为大家详细讲解有关vue中花括号数据绑定失败如何解决,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。如下所示:<!DOCTYPE h...
      99+
      2024-04-02
    • jQuery如何绑定失败动画事件?
      这篇文章将为大家详细讲解有关jQuery如何绑定失败动画事件?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery绑定失败动画事件 jQuery提供了多种方法来绑定自定义事件,包括动画事件。失败动画...
      99+
      2024-04-02
    • win11小组件加载失败如何解决
      这篇“win11小组件加载失败如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“win11小组件加载失败如何解决”文章吧...
      99+
      2023-06-30
    • Vue3 ref构建响应式变量失效如何解决
      const title = ref("Hello, Vue 3!");ref 接收参数并将其包裹在一个带有 value 属性的对象中返回,然后可以使用该属性访问或更改响应式变量的值,比如上面的代码我们使用 count.v...
      99+
      2023-05-14
      Vue3 ref
    • react组件样式引用失败如何解决
      今天小编给大家分享一下react组件样式引用失败如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。react组件样式引用...
      99+
      2023-07-04
    • Vue3中如何使用defineCustomElement定义组件
      本篇内容主要讲解“Vue3中如何使用defineCustomElement定义组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue3中如何使用defineCustomElement定义组件”...
      99+
      2023-07-04
    • docker运行nginx绑定配置文件失败原因以及问题解决
      目录直接执行启动命令会失败解决思路及办法总结直接执行启动命令会失败 pull镜像: docker pull nginx 然后执行启动命令: docker run -d -p 80:8...
      99+
      2023-02-22
      docker nginx配置没生效 docker配置nginx docker 运行nginx
    • filezilla下载文件失败如何解决
      当使用FileZilla下载文件失败时,可以尝试以下解决方案:1. 检查网络连接:确保你的网络连接正常,可以尝试连接其他网站或使用其...
      99+
      2023-10-07
      filezilla
    • excel插件加载失败如何解决
      今天小编给大家分享一下excel插件加载失败如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。excel插件加载失败:使...
      99+
      2023-07-02
    • 如何解决vue绑定对象内点击事件失效问题
      这篇文章主要介绍如何解决vue绑定对象内点击事件失效问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!解决办法是将绑定对象内的元素点击事件换成 v-on:click。以上是“如何解决...
      99+
      2024-04-02
    • vue双向数据绑定失灵了如何解决
      今天小编给大家分享一下vue双向数据绑定失灵了如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在数据属性上直接更改值如...
      99+
      2023-07-06
    • eclipse安装pydev插件失败如何解决
      在安装PyDev插件时,如果遇到安装失败的问题,可以尝试以下解决方法:1. 检查Eclipse版本:确保你正在使用的Eclipse版...
      99+
      2023-09-01
      eclipse
    • vscode调试go插件失败如何解决
      如果你在使用 VS Code 调试 Go 代码时遇到问题,可以尝试以下解决方案:1. 确保已安装相应的插件:在 VS Code 中,...
      99+
      2023-10-20
      vscode go
    • mongodb导入json文件失败如何解决
      导入JSON文件到MongoDB失败可能是由于以下几个原因:1. JSON文件格式错误:确保JSON文件的格式是正确的,没有语法错误...
      99+
      2023-08-31
      mongodb json
    • win7注册ocx控件失败如何解决
      注册OCX控件失败可能由多种原因引起,以下是一些可能的解决方法:1. 确保以管理员身份运行命令提示符:右键点击命令提示符,选择“以管...
      99+
      2023-10-09
      win7
    • vue3.x使用swiperUI动态加载图片失败如何解决
      这篇文章主要讲解了“vue3.x使用swiperUI动态加载图片失败如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3.x使用swiperUI动态加载图片失败如何解决”吧!版本号...
      99+
      2023-07-02
    • ubuntu中安装mysql失败如何解决
      这篇文章主要讲解了“ubuntu中安装mysql失败如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ubuntu中安装mysql失败如何解决”吧!原因:可能是原有的MySQL还有卸载残...
      99+
      2023-07-04
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作