首页 > 其他分享 >vue3子组件给父组件传参,父组件给子组件传参,在父组件中直接调用子组件中的某个方法

vue3子组件给父组件传参,父组件给子组件传参,在父组件中直接调用子组件中的某个方法

时间:2024-03-28 14:30:41浏览次数:23  
标签:传参 const id 传递 vue3 组件 方法 调取

vue3子组件给父组件传参,父组件给子组件传参,在父组件中直接调用子组件中的某个方法
1、子传父,以传递id为例

子:

const emit = defineEmits(['passId']);

//在需要传递的参数的地方写 , id为需要传递的参数

emit('passId', id);

 父:

//引入子组件
const SonPage= defineAsyncComponent(() => import('./sonpage.vue'));
//在DOM元素中引入子组件
<son-page  @passId="getId" />
//在script中写getId方法

const getId= (id: string) => {

         console.log("id",id)  //打印的值就是传递的id

};

2、父传子,以传递一个数组为例

父:

//引入子组件
const SonPage= defineAsyncComponent(() => import('./sonpage.vue'));

//定义一个传递给父组件的数组,以studentList 为例
const studentList = [{name:"张三",age:18},{name:"李四",age:20}]
//在DOM元素中传递
<son-page  :list="studentList ">

 子:

const props = defineProps({

 list: {

    type: Array, //数组类型

    default: '[]',  //默认空数组

  })

//定义一个变量接传递过来的list
const arrlist= ref(props.list);
console.log("arrList",arrlist)  //打印的就是传递过来的数组

 3、在父组件中调取子组件的某一个方法
子:

//父组件中将会调取的这个方法,id是父组件中的id,不用传递给子组件,直接将id作为参数调取子组件的方法
const getData= (id:string)=>{

//里面的方法自定义,我这里写了一个调取列表的数据的方法,getlist是一个获取列表的接口

  getlist(id).then((res: any) => {

        let List = res.data

   })

}
//在script中奖这个方法暴露

defineExpose({

  getData,

});

父:

//引入子组件
const SonPage= defineAsyncComponent(() => import('./sonpage.vue'));

const sonpageRef  = ref()

//DOM行间
<son-page ref = "sonpageRef">

①//在script中的某个方法里面调取这个方法
const openmedth = (userid)=>{
  sonpageRef.value.getData(userid)
}
②//在DOM行写,点击某个按钮时直接调取这个方法,注意这个id可以是script中已经定义的,也可以是for循环中遍历的

<el-button  @click="sonpageRef.openDialog(id)"  >获取列表</el-button>
注:子组件中的方法不需要参数时可以写参数,父组件调取子组件的方法时也不用填写参数

标签:传参,const,id,传递,vue3,组件,方法,调取
From: https://blog.csdn.net/weixin_58129544/article/details/136946357

相关文章

  • 解决vue3项目中四周留白的原因
    留白原因:vue3中body有默认属性margin:8px。body{display:block;margin:8px;}如何解决:需要在vue项目中对根目录的index.html进行代码添加<style>body{margin:0;}</style>index.html完整代码:<!DOCTYPEhtml><htmllang="en">&......
  • vue3 - 最新手机扫码PC网站二维码登录功能,用手机端扫描PC端vue3网页的登录二维码,然后
    效果图在vue3开发中,详细实现“PC电脑网站生成微信登录二维码+手机扫码登录+双端同步数据”,利用扫码实现网站登录功能、用户用手机扫描电脑端二维码进行登录的详细教程步骤(电脑端PC网页、手机端都是vue3开发,支持将手机端改造成微信小程序、uniapp安卓苹果app、H5网页等。)......
  • 深入浅出:探索Hadoop生态系统的核心组件与技术架构
    目录前言HDFSYarnHiveHBaseSpark及SparkStreaming书本与课程推荐关于作者:推荐理由:作者直播推荐:前言进入大数据阶段就意味着 进入NoSQL阶段,更多的是面向OLAP场景,即数据仓库、BI应用等。大数据技术的发展并不是偶然的,它的背后是对于成本的考量。集中式数据库或......
  • 【Vue】 签名组件
    一、需求背景:检查业务,检查完成后,执行人需要签字证明检查完成 二、实现效果: 三、技术实现通过canvas转换成blob对象,可以上传到文件服务,或者是下载另存为到本地磁盘注意重点,canvas的样式的宽高和dom对象宽高一定要一致才可以,否则无法在面板绘制线条!<template><el-dia......
  • 第四章(页面组件)总结
    4.1一组件的定义及属性组件是页面视图层(WXML)的基本组成单元,组件组合可以构建功能强大的页面结构。小程序框架为开发者提供了容器视图、基础内容、表单、导航、多媒体、地图、画布、开放能力等8类(30多个)基础组件。每一个组件都由一对标签组成,有开始标签和结束标签,内容放置在开......
  • vue3背景下,el-input嵌套在弹出框中,自动聚焦“失效”?如何实现自动聚焦
    情景:在一个弹出框中,有一个el-input输入框,想要实现当弹出框出现时,input会自动聚焦。使用input的原生属性autofocus去自动获取焦点失效;使用ref获取el-input元素也显示undefined!!!<el-dialogv-model="dialogFormVisible"width="300">.......<el-input......
  • 使用可迭代对象作为 React 组件
    源码最近看React源码的时候发现其在处理数组的同时也对可迭代协议做了处理,因此React组件可以是一个返回可迭代对象的函数。源码如下:reconcileChildFibersImplif(isArray(newChild)){returnreconcileChildrenArray(returnFiber,currentFirstChild,newChild,lanes,......
  • 深入理解 Vue 3.0 宏函数:提升组件代码的工程化与可维护性
    Vue3.0宏函数详解:defineProps、defineEmits、defineExpose、defineSlots和defineOptions在Vue3.0中,为了更好地组织和维护组件代码,引入了几个新的宏函数。这些宏函数包括defineProps、defineEmits、defineExpose、defineSlots和defineOptions。本文将详细介绍这五......
  • 第4章 页面组件
    一. 组件的定义及属性    1.1 语法格式如下: <标签名  属性名=“属性值” >内容....</标签名>  id 组件的唯一表示,保持整个页面唯一,不常用class 组件的样式类,对应WXSS中定义的样式  style组件的内联样式,可以动态设置内联样式......
  • 【已解决】vue3+ts使用Element-Plus icon图标不显示|element plus 使用 icon 图标教程
    文章目录使用Element-Plusicon图标不显示的解决方案确保已正确安装和引入Element-Plus及其图标库:检查是否有命名冲突:elementplus使用icon图标教程1.安装ElementPlus2.引入ElementPlus和图标全局引入按需引入3.在组件中使用图标4.自定义图标使用E......