vue 父组件点击调起子组件的方法

前言:最近在做管理系统,页面基本都是组件模块化,如果遇到点击父组件里的一个事件要调取子组件里的方法该怎么实现,上代码(仔细看注释说明)。

父组件

//如果我们单纯的只是想调取子组件的方法--方法一
//如果我们想调取子组件又要传值的方法--方法二

<el-tabs v-model="tabType" @tab-click="handleClick"> <!-- handleClick为父组件的点击事件  -->
    <el-tab-pane v-for="(item,index) in tabList" :key="index" :label="item.name" :id="item.id"></el-tab-pane>
</el-tabs>

<!-- 下面的是我们在父组件里面引入的子组件(用ref绑定一个自定义名) -->

<el-aside width="300px" v-if="tabId !== ''">
   <video-tree ref="editTree" :type="1" :tabId="tabId" @success="treeSuccess" @totalPages="totalPage" @totalElements="totalElement"/>
</el-aside>

<!-- 下面是js代码 -->

//方法一		
 handleClick() { //这里的editTree是刚刚我们定义的ref,后面的callMethod是方法名(自定义)
   this.$refs.editTree.callMethod();
 },
//方法二

 handleClick() { //这里的用$emit
  this.$refs.editTree.$emit('callMethod','要发送的数据')
 },




子组件


methods:{
	//方法一
	callMethod(){ //这里是我们在父组件定义的方法
		this.getList() //这里是你想要调起的子组件的方法
    },
    
    //方法二
	getFunc(){ //写一个方法在初始化的时候调用一下
   	    this.$on('callMethod', (res) => {  //callMethod我们在父组件定义的方法名 
   		      this.getList(res) //这里是你想要调起的子组件的方法并传进带过来的数据                  
	    },
}

mounted(){
	this.getFunc()
}



注释写的很明白不懂的一定要多看下注释,希望能帮到各位~

end~~~

如有错误或观点不一致的请评论留言共同讨论,本人前端小白一枚,根据自己实际项目遇到的问题进行总结分享,谢谢大家的阅读!
文章对您有所帮助请给作者点个赞支持下,谢谢~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值