Vue 调用子组件、父组件、兄弟同级组件、任意组件方法

一、父组件调用子组件方法:

父组件调用子组件方法
父组件P的HTML构成如下,想调用子组件C的c_method方法,首先给子组件定义ref属性:

<!-- P.vue -->
<template>
	<C ref="C"/>
</template>

JS定义一个child_C_method方法,使用

this.$refs.C

来获取子组件对象,也可以用

this.$refs[“C”]

来获取:

child_C_method () {
	this.$refs.C.c_method()
	// this.$refs["C"].c_method()
},

二、子组件调用父组件方法:

子组件调用父组件方法
父组件P的HTML构成如下:

<!-- P.vue -->
<template>
	<C ref="C"/>
</template>

JS如下,其中子组件C想调用p_method:

p_method (a,b,c) {
	...
},

首先在父组件调用子组件的标签处,添加属性

<!-- P.vue -->
<template>
	<C ref="C" @child_p_method="p_method"/>
</template>

其中,child_p_method是父组件方法p_method在子组件中的别名,即在子组件调用处使用this.$emit方法即可:

c_method (d,e,f) {
	this.$emit("p_method",d,e,f);
},

其中d,e,f是实参。


三、兄弟同级组件、任意组件相互调用方法:

对于兄弟组件
兄弟同级组件、任意组件相互调用

<!-- P.vue -->
<template>
	<C1 @child_p_method="p_method"/>
	<C2 ref="C2"/>
</template>

子组件C1要调用C2的c2_method方法,首先让父组件调用c2_method,在p_method中调用(一),然后C1调用父组件的p_method方法(二)。

对于任意组件,只要存在血缘关系,都可以使用(一)(二)情形组合解决。

血缘关系:父子关系属于最亲的血缘关系;只要从组件包含的关系上看,有共同的祖先,都属于有血缘关系的组件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值