vue2.0中父子,兄弟组件的传值2

子组件间DOM交互
本文介绍了一种在Vue.js应用中实现不同子组件之间DOM元素交互的方法。具体来说,通过父组件作为中介传递子组件C的DOM元素到另一个子组件B,使得B能够操作C的DOM。这一过程涉及到了子组件向父组件发送DOM引用并通过父组件将其转发给另一子组件的技术细节。

问题描述:在父组件a中有b,c两个子组件,b组件想使用c组件的dom元素

解决方法:通过其父组件进行传值

1、在c组件中使用this.$emit方法将event.target传给父组件a

c子组件代码

<template>
<div class=“car” @click="addcar"></div>
</template>

methods: {
    addcar(event) {
        this.$emit('addCart',event.target);//触发addCart方法,event.target为向父组件传递的数据
    }
}
复制代码

2、在父组件a中监听子组件触发的addCart事件,然后调用addcart方法,再使用this.$refs来引用子组件b,进而调用其drop方法。

父组件a代码

<div>
<c @addCart="addcart"></c>//监听子组件触发的addCart事件,然后调用addcart方法
<b ref="b"></b>
</div>

methods: {
    addcart(target) {
        this._drop(target);
    },
    _drop(target) {
        this.$refs.b.drop(target);//调用子组件b中的drop方法
    }
}
复制代码

3、在子组件中定义一个drop方法使用target

子组件b的代码

methods: {
    drop(el) {
    //此el就是c组件中的dom元素div
        console.log(el);
    }
}
复制代码

最后就能在子组件c中使用target

转载于:https://juejin.im/post/5acada6cf265da2386702e3d

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值