首页 > 其他分享 >vue3父组件 调用子组件 方法

vue3父组件 调用子组件 方法

时间:2024-07-04 15:43:08浏览次数:17  
标签:调用 const defineExpose ChildComponentRef value vue3 组件 ref

父组件:通过ref获取子组件实例

<template>
  <div style="text-align:center">
    <button @click="callChildMethod">点击获取子组件数据</button>
    <div>
      获取到子组件的数据如下:
      <div> {{childData}} </div>
    </div>
    <ChildComponent ref="ChildComponentRef"/>
  </div>
</template>

<script setup>
  import { ref } from "vue";
  import ChildComponent from "@/components/childComponent.vue";
  
  const ChildComponentRef = ref(null); // 获取子组件实例(需要跟ref处同名)
  let childData = ref();
  const callChildMethod = () =>{
      
    if (ChildComponentRef.value) {
      childData.value = ChildComponentRef.value.userName +'在'+ ChildComponentRef.value.doSomething() 
    }
  }
</script>
defineExpose 是 Vue 3.2 引入的一个新 API,它是 <script setup> 的配套 API 之一。在 <script setup> 中,所有定义的变量和函数默认是私有的,不能从组件外部访问。
defineExpose 的引入是为了提供一种清晰的方式来控制组件的公共接口,避免所有的内部状态都被外部访问,从而增强组件的封装性。
如果你想让外部组件访问到 <script setup> 内定义的属性或方法,你需要使用 defineExpose 显式地暴露它们。   子组件:通过defineExpose暴露方法
<template>
  <!-- <p>子组件</p> -->
</template>

<script setup>
  import { ref, defineExpose } from "vue";
  const userName = ref("张三");// 属性 
  const doSomething () => ({
    return "写代码"
  });

  // 暴露方法
  defineExpose({
    doSomething,// 暴露方法
    userName,// 暴露属性
  });
</script>

 

标签:调用,const,defineExpose,ChildComponentRef,value,vue3,组件,ref
From: https://www.cnblogs.com/lcaiqin/p/18283962

相关文章

  • Vue3 子【emit 】传父【监听】
    <!--父组件--><template><h1>IamParentComponent</h1><ChildComponent@child-click="zCf"/><h2>{{x}}</h2></template><scriptsetup>importChildComponentfrom'./ChildCom......
  • 对于浏览器请求接口限制,是否有必要开发一套请求任务管理器组件,自主的去控制请求的并发
    在现代Web开发中,浏览器对同时发起的网络请求确实存在一定的限制,这个限制通常与浏览器的安全性和性能优化有关。不同浏览器对最大并发连接数有不同的默认设置,例如,Chrome和Firefox大致允许每个域名上同时有6到8个TCP连接,而IE可能更低。当超过这个限制时,额外的请求会被排队等待,直......
  • 拼多多面试 Linux下一个应用程序开始执行到main被调用之间经历了什么?
    在Linux系统中,一个应用程序从开始执行到main函数被调用之间经历了多个复杂的步骤。以下是一个详细的流程概述:1.加载器(Loader)当用户在终端或脚本中启动一个程序时,shell调用系统调用execve。这个系统调用将负责启动程序的执行。2.内核态操作内核处理execve系统调用并执行以下......
  • 详解Web应用安全系列(7)使用具有已知漏洞的组件
    使用具有已知漏洞的组件,这种安全漏洞普遍存在,基于组件开发的模式使得多数开发团队根本不了解其应用或API中使用的组件,更谈不上及时更新这些组件了。下面就分别以.NET和Java各分享一个案例。.NET案例:XmlSerializer反序列化漏洞案例描述在.NET框架中,XmlSerializer类是一个常......
  • vue3 父组件【属性】传值给子组件【props】接收
     父组件文件:parentcomponent.vue子组件文件:childcomponent.vue传普通值传动态值传对象传数组<!--父组件--><template>   <h1>IamParentComponent</h1>   <ChildComponentmsg="nice"/>  </template><scriptsetup>   importC......
  • VCL界面组件DevExpress VCL v24.1 - 发布全新的矢量主题
    DevExpressVCL是DevExpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。DevExpressVCLv24.1已于日前正式发布,新版本官......
  • element 手写季度组件
    组件:<template><divclass="time_quarter"><markstyle="position:fixed;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0);z-index:999;"v-show="showSeason"@click.stop="showSeason=false&q......
  • k8s组件有哪些?
    Kubernetes是谷歌公司一款开源的容器编排管理工具,它的本质是一组服务器集群管理工具,能够在集群的每个节点上运行特定的程序,它的目的是实现资源的管理自动化,主要提供了自我修复,弹性伸缩、服务发现、负载均衡、版本回退、存储编排等功能。1、自我修复:一个容器崩溃,会立......
  • 2.Kubernetes集群架构与组件
    一、Kubernetes组件       1.1控制面板组件(都是在master上面的)               kube-apiserver:对节点以及任务处理的一个相关接口(所有的调用都要经过这个组件调用)               kube-controller-manager:控制器管理器,管理各个类型的......
  • uniapp自定义富文本现实组件(支持查看和收起)
    废话不多说上代码CollapseText.vue<template> <viewv-if="descr"> <scroll-viewclass="collapse-text":style="{maxHeight:computedMaxHeight}"> <!--<slot></slot>--> <rich-text:nodes......