Vue的 this.$refs.xxx 报错undefined解决办法

2023-11-12

目录

一、背景

二、解决办法

1、DOM加载完成后再调用

2、子组件第一次加载时不调用


一、背景

用ref 注册子组件,父组件可以通过this.$refs.xx.fn调用子组件里的函数,

页面初始化的时候调用this.$refs.xxx的时候提示undefined, 一开始以为方式失灵了,后来是发现

因为 ref 本身是作为渲染结果被创建的,在初始渲染的时候你不能访问它们 - 它们还不存在!$refs 也不是响应式的,因此你不应该试图用它在模板中做数据绑定。”

也就是说 ref 只有等页面加载完成好之后你才能调用 this.$refs ,如果你使用v-if 、v-for渲染页面的话,那么在刚开始页面没没渲染之前你是拿不到this.$refs的,所以要等到页面渲染之后拿才可以。

二、解决办法

1、DOM加载完成后再调用

生命周期的了解:Vue中created和mounted详解_vue mounted_慕白Lee的博客-CSDN博客

demoMethod() {
  this.$nextTick(() => {
    ...
  })
},

2、子组件第一次加载时不调用

定义第一次调用状态

data(){
    return {
        updalod:{
            isFirst:false,
        }
    }
}

适用于特定场景, 然后第一次渲染不执行,需要注意的是定义的变量需要在子组件下, 不然也是获取不到的

有用请点赞,养成良好习惯!

鼓励、交流、疑问请留言!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue的 this.$refs.xxx 报错undefined解决办法 的相关文章

随机推荐

  • 如何在opensea批量发布NFT(Goerli测试网)

    一 生成NFT图象 hashlips art engine HashLips Art Engine 是一种用于根据提供的图层创建多个不同的艺术作品实例的工具 1 安装 npm install or yarn install 2 使用 在 l
  • 微信小程序简单的信息表格的提交到数据库(新手篇)(云端数据库)

    微信小程序简单的信息表格的提交到数据库 新手专属 云端数据库 大家好 我是小陈 一名大一的编码爱好者 刚刚结束了大一的学习生活 也总结出了一点编码的经验 希望与大家一起分享 我是学习物联网的 总感觉大一的课程枯燥无味 所以索性自学了一点微信
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 持续集成平台-jenkin

    CI平台诞生的背景 很多公司因为种种原因 不想使用GitHub gitlab上的CI能力 或是希望定制一些功能更加强大的CI CD工作流 这时就需要一些更专业的CI平台了 CI平有那些 github gitlab Aone 阿里巴巴 织云
  • UE5学习笔记(1)——从源码开始编译安装UE5

    目录 0 前期准备 1 Git bash here 2 克隆官方源码 3 选择安装分支 4 运行Setup bat 下载依赖文件 5 运行GenerateProjectFiles bat生成工程文件 6 生成完成 找到UE5 sln UE4
  • mysql 设置默认值_MySQL InnoDB相关参数设置

    MySQL InnoDB相关参数设置 1 InnoDB参数 MySQL目前使用的主要为InnoDB引擎 一些InnoDB引擎参数调整到合理的值将很大程度上改善数据库性能 下面将对一些重要参数做说明 2 InnoDB参数调整 2 1InnoD
  • 【Java】使用iText生成PDF文件

    iText介绍 iText是著名的开放源码的站点sourceforge一个项目 是用于生成PDF文档的一个java类库 通过iText不仅可以生成PDF或rtf的文档 而且可以将XML Html文件转化为PDF文件 项目要使用iText 必
  • fopen()和fwrite()函数介绍及用法

    一 fopen 头文件 include
  • 服务器文件夹设置只有读写权限 IIS,iis 读写服务器的权限设置

    iis 读写服务器的权限设置 内容精选 换一换 打开FTP服务器上的文件夹时发生错误 请检查是否有权限访问该文件夹 浏览器设置了FTP防火墙 以设置IE浏览器为例 打开IE浏览器菜单 工具 gt Internet 选项 选择 高级 标签卡
  • sqlite和一般主流数据在sql语句的区别

    sql语句中经常存在根据类型查数据 有时候条件是字符型 有时候是数字 由于数据库的差异 最好在写sql语句时 同意写成带引号 比如下面 select from tb project info where 1 1 and PROJECT CO
  • Ubuntu20.4 Android-9.0.0_r46源码下载编译

    Ubuntu20 4 Android 9 0 0 r46源码下载编译调试 安装Ubuntu虚拟机 ubuntu镜像下载地址 https ubuntu com download 官网下载地址较慢可以去 清华源 中科大源 华为 阿里源直接下载都
  • C++学习(四十八)homebrew及其安装

    Homebrew是一款Mac OS平台下的软件包管理工具 拥有安装 卸载 更新 查看 搜索等很多实用的功能 简单的一条指令 就可以实现包管理 而不用你关心各种依赖和文件路径的情况 十分方便快捷 在Homebrew中 软件包分为 CLI 软件
  • 初识网络原理(笔记)

    目录 编辑局域网 网络通信基础 IP 地址 端口号 协议 协议分层 TCP IP 五层网络模型 网络数据传输的基本流程 发送方的情况 接收方的情况 局域网 搭建网络的时候 需要用到 交换机 和 路由器 路由器上 有 lan 口 和 wan
  • pycharm自动打开最近项目

    1 当每次需要打开不同的项目时 需要关闭pycharm自动打开最近项目的功能 File gt setting gt Appearance Behavior gt System Setting gt Startup Shutdown 取消 R
  • Qt错误汇总

    1 error linker command failed with exit code 1 use v to see invocation 错误原因1 类中声明的方法没实现体 解决办法1 查找那个方法 在cpp中添加实现就行了 illeg
  • 转 Unity知识点0001(Yanlz+协程+List+MeshRender+对象池+链条关节+PlayerPrefs+脚本生命周期+LOD+)

    https blog csdn net VRunSoftYanlz article details 80302012 Unity知识点0001 Yanlz 协程 List MeshRender 对象池 链条关节 PlayerPrefs 脚本
  • Markdown 文件转word格式

    操作步骤 1 打开typora官网 https www typora io 一直往下拉 根据操作系统选择下载typora安装版本 2 安装typora 打开Markdown文件 3 文件 gt gt 导出 gt gt word 4 第一次导
  • 深度学习训练之学习率LR系统总结

    文章目录 1 StepLR 2 MultiStepLR 3 ExponentialLR 4 CosineAnnealingLR 5 CyclicLR 6 ReduceLROnPlateau 1 StepLR 先上API optimizer
  • npm ERR Error while executing npm ERR

    npm ERR Error while executing npm ERR d Program Files Git cmd git EXE ls remote h t https github com nhn raphael git npm
  • Vue的 this.$refs.xxx 报错undefined解决办法

    目录 一 背景 二 解决办法 1 DOM加载完成后再调用 2 子组件第一次加载时不调用 一 背景 用ref 注册子组件 父组件可以通过this refs xx fn调用子组件里的函数 页面初始化的时候调用this refs xxx的时候提示