首页 > 其他分享 >vue3中ref绑定自定义组件没有获取到dom?

vue3中ref绑定自定义组件没有获取到dom?

时间:2024-06-03 23:44:05浏览次数:26  
标签:自定义 dom 绑定 test vue3 组件 ref

问题

<template>
  <my-comp ref="test" />
</template>
<script lang="ts" setup>
  const test = ref()
  onMounted(() => {
      console.log(test.value)
  })
</script>

打印出来的是一个proxy对象

解决办法

1.如果ref绑定的是一个普通的dom元素,就能打印出来dom对象

2.如果是自定义组件,需要自定义组件暴露出ref

在子组件中绑定ref之后还需要用defineExpose暴露出来,如果想调用子组件的方法,也需要暴露出来方法

// 子组件
<template>
  <div ref="dom" />
</template>
<script lang="ts" setup>
  const dom = ref()
  defineExpose({dom})
</script>

// 父组件
<template>
  <my-comp ref="test" />
</template>
<script lang="ts" setup>
  const test = ref()
  onMounted(() => {
      console.log(test.value.dom)
  })
</script>

标签:自定义,dom,绑定,test,vue3,组件,ref
From: https://www.cnblogs.com/echohye/p/18229924

相关文章

  • VS Code自定义代码模板
    VSCode自定义代码模板VSCode作为一款轻量级的编辑器,使用体验极佳,具有很多有用的小功能,也有着非常丰富的插件,日常写代码的时候自动补全和各种模板能够有效的提高编码的效率,这里介绍两种我常使用的自定义代码块或者模板的设置方法。集成自定义代码段VSCode自带了用户定......
  • HarmonyOS NEXT星河版之自定义List下拉刷新与加载更多
    文章目录一、加载更多二、下拉刷新三、小结一、加载更多借助List的onReachEnd方法,实现加载更多功能,效果如下:@ComponentexportstructHPList{//数据源@PropdataSource:object[]=[]//加载更多是否ing@StateisLoadingMore:boolean=false......
  • 「AntV」X6 自定义vue节点(vue3)
    官方文档本篇文档只讲解vue3中如何使用,vue2的可以参考下官方文档安装插件@antv/x6-vue-shape添加vue组件既然使用vue节点,那么我们就需要准备一个vue的组件,这个组件就是节点的一些样式,根据你们的ui自行写代码即可<template><div>节点名称</div><div>节点描述</div>......
  • Vue3.0+typescript+Vite+Pinia+Element-plus搭建vue3框架!
    使用Vite快速搭建脚手架命令行选项直接指定项目名称和想要使用的模板,Vite+Vue项目,运行(推荐使用yarn)#npm6.xnpminitvite@latestmy-vue-app--templatevue#npm7+,需要额外的双横线:npminitvite@latestmy-vue-app----templatevue#yarnyarncreatevite......
  • React路由 基础:react-router-dom
    这里简单介绍一下react路由基础的知识,以及基础操作一,安装命令npminstallreact-router-dom二,路由模式1.ReactRouter支持两种路由模式:BrowserRouter和HashHistory。2.BrowserRouter使用URL中的/来定义路由,例如:http://xxx.com/Search3.HashHistory使用URL中的#来定义路由,例如......
  • Vue3简单项目流程分享——工作室主页
    Vue3简单项目流程分享——工作室主页零、写在最前以下是项目相关的一些链接:源代码GitHub仓库(需要魔法上网):仓库网页示例(需要魔法上网):网页示例UI图(来源@设计师杨贺):MasterGo主页补充:由于时间关系,该网页没有适配手机端,最佳展示效果为网页端1440p宽度。如果你想要运行源代码:......
  • vue3异步组件
    vue2//定义一个异步组件constAsyncComponent=()=>({//需要加载的组件(应该是一个Promise)component:import('./MyComponent.vue'),//加载中应当渲染的组件loading:LoadingComponent,//出错时渲染的组件error:ErrorComponent,//渲染loadin......
  • IDEA自定义配置注释模板,让你看起来更加专业!!!
    一:类注释我们先来康康成果:在以上的代码中我们可以看到只要创建一个类,idea自动会给你补充注释消息,有作者信息和创建时间关于模板参数代码我已经放到下面了:/***@author:dlwlrma*@data${YEAR}年${MONTH}月${DAY}日${TIME}*/ 使用方法:打开IDEA的Settings,点击Edi......
  • 【Python】生成html文档-使用dominate
    原文地址:https://www.cnblogs.com/kaerxifa/p/13035376.htmldominate简介dominate是一个使用优雅的DOMAPI创建和操作HTML文档的Python库。使用它能非常简洁地编写纯Python的HTML页面,这消除了学习另一种模板语言的需要,利用Python更强大的特性。 首先安装依赖:pipinstall......
  • vue3 使用element plus 方式
    安装依赖npminstallelement-plus--save引入依赖import'./assets/main.css'import{createApp}from'vue'import{createPinia}from'pinia'importAppfrom'./App.vue'importrouterfrom'./router'//从这里引......