vue3父组件使用ref获取子组件的属性和方法

 更新时间:2023年11月17日 10:01:49   作者:Kratial  
在vue3中父组件访问子组件中的属性和方法是需要借助于ref,苏哦一本文小编给大家介绍了vue3父组件如何使用ref获取获取子组件的属性和方法,文中详细的代码讲解,需要的朋友可以参考下

在vue3中父组件访问子组件中的属性和方法是需要借助于ref:

1.<script setup> 中定义响应式变量 例如: const demo1 = ref(null)

2.在引入的子组件标签上绑定ref属性的值与定义的响应式变量同名( <demo1 ref="demo1"/>)。

父组件代码如下:

<template>
  <demo1 ref="demo1"/>
  <demo2 ref="demo2"/>
  <demo3 ref="demo3"/>
</template>
<script setup>
import Demo1 from '@/components/demo1.vue'
import Demo2 from '@/components/demo2.vue'
import Demo3 from '@/components/demo3.vue'
import {ref,onMounted} from 'vue'

const demo1 = ref(null)
const demo2 = ref(null)
const demo3 = ref(null)
onMounted(()=> {
  console.log(demo1.value.count,'demo1子组件')
  console.log(demo2.value?.a,'demo2子组件')
  console.log(demo3.value.list[0],"demo3子组件")
})
</script>

子组件代码如下:

demo1.vue

<template>
  <h1>i'm demo1 content{{count}}</h1>
</template>

<script >
import {ref} from 'vue'
export default {
    setup () {
        const count = ref(999)
        return {
            count
        }
    }
}

此时父组件可以获取到子组件的count属性

demo2

<template>
  <h1>我是demo2</h1>
</template>

<script setup>
import {defineExpose,ref} from 'vue'
const a = ref('helloss')
</script>

当使用 <script setup> 写法会导致父组件无法访问到子组件中的属性和方法。

使用 <script setup> 的组件,想要让父组件访问到它的属性和方法需要借助与defineExpose来指定需要暴露给父组件的属性。

更改后的demo2组件

<template>
  <h1>我是demo2</h1>
</template>

<script setup>
import {defineExpose,ref} from 'vue'
const a = ref('helloss')
defineExpose({
    a
})
</script>

demo3

<template>
  <h1>我是demo3</h1>
</template>

<script>
export default {
  data () {
    return {
        list:['a','b','c']
    }
  },
  methods: {
    btn () { 
    }
  }
}

这种方式,父组件可以正常获取到里面的属性和方法。

到此这篇关于vue3父组件使用ref获取子组件的属性和方法的文章就介绍到这了,更多相关vue3 ref取获取子组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于ElementUI实现v-tooltip指令的示例代码

    基于ElementUI实现v-tooltip指令的示例代码

    文本溢出隐藏并使用tooltip 提示的需求,相信在平时的开发中会经常遇到,常规做法一般是使用 elementui 的 el-tooltip 组件,在每次组件更新的时候去获取元素的宽度/高度判断是否被隐藏,本文给大家介绍了基于ElementUI实现v-tooltip指令,需要的朋友可以参考下
    2024-09-09
  • Vue防止白屏添加首屏动画的实例

    Vue防止白屏添加首屏动画的实例

    今天小编就为大家分享一篇Vue防止白屏添加首屏动画的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • vue进入页面时滚动条始终在底部代码实例

    vue进入页面时滚动条始终在底部代码实例

    这篇文章主要介绍了vue进入页面时滚动条始终在底部,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • 解决vue中修改了数据但视图无法更新的情况

    解决vue中修改了数据但视图无法更新的情况

    今天小编就为大家分享一篇解决vue中修改了数据但视图无法更新的情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Vue实现验证码登录的方法实例

    Vue实现验证码登录的方法实例

    最近在自己写页面,然后写登录注册UI的时候需要一个验证码组件,去搜一下没找到什么合适的,于是自己写一个,这篇文章主要给大家介绍了关于Vue实现验证码登录的相关资料,需要的朋友可以参考下
    2022-03-03
  • vue仿网易云音乐播放器界面的简单实现过程

    vue仿网易云音乐播放器界面的简单实现过程

    兴趣乃学习的动力,想自己动手写个音乐播放器,查了网上一些博客写了一个,这篇文章主要给大家介绍了关于vue仿网易云音乐播放器界面的简单实现过程,需要的朋友可以参考下
    2021-11-11
  • 详解Vue3.0中ElementPlus<input输入框自动获取焦点>

    详解Vue3.0中ElementPlus<input输入框自动获取焦点>

    这篇文章主要给大家介绍了关于Vue3.0中ElementPlus<input输入框自动获取焦点>的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用vue3.0具有一定的参考学习价值,需要的朋友可以参考下
    2023-04-04
  • vue中watch监听对象中某个属性的方法

    vue中watch监听对象中某个属性的方法

    watch 的用法有个特点,就是当值第一次绑定的时候,不会执行监听函数,只有值发生改变才会执行,如果我们需要在最初绑定值得时候也执行函数,就需要用到 immediate 属性,这篇文章主要介绍了vue中watch监听对象中某个属性的方法,需要的朋友可以参考下
    2023-04-04
  • Vue3.0路由跳转携带参数的示例详解

    Vue3.0路由跳转携带参数的示例详解

    这篇文章主要介绍了Vue3.0路由跳转携带参数的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Vue3子组件实现v-model用法的示例代码

    Vue3子组件实现v-model用法的示例代码

    在Vue 3中,实现自定义的input组件并支持v-model绑定,涉及到对modelValue这个默认prop的处理和对应的update:modelValue事件的触发,本文给大家介绍了Vue3子组件实现v-model用法的示例,需要的朋友可以参考下
    2024-04-04

最新评论