问题描述:在父组件a中有b,c两个子组件,b组件想使用c组件的dom元素
解决方法:通过其父组件进行传值
1、在c组件中使用this.$emit方法将event.target传给父组件a
c子组件代码
methods: { addcar(event) { this.$emit('addCart',event.target);//触发addCart方法,event.target为向父组件传递的数据 }}复制代码
2、在父组件a中监听子组件触发的addCart事件,然后调用addcart方法,再使用this.$refs来引用子组件b,进而调用其drop方法。
父组件a代码
methods: { addcart(target) { this._drop(target); }, _drop(target) { this.$refs.b.drop(target);//调用子组件b中的drop方法 }}复制代码//监听子组件触发的addCart事件,然后调用addcart方法
3、在子组件中定义一个drop方法使用target
子组件b的代码
methods: { drop(el) { //此el就是c组件中的dom元素div console.log(el); }}复制代码
最后就能在子组件c中使用target