vue递归组件如何传递事件给父组件
用eventBus 策略注意:emit和emit和emit和on的事件必须在一个公共的实例上,才能够触发一、在src目录下新加bus.js作为一个公共的实例import Vue from 'vue'export var bus = new Vue()二、父组件在created里面定义$on监听事件//父组件与子组件都要import bus.jsimport {bus} from...
·
用eventBus 策略
注意:
e
m
i
t
和
emit和
emit和on的事件必须在一个公共的实例上,才能够触发
一、在src目录下新加bus.js作为一个公共的实例
import Vue from 'vue'
export var bus = new Vue()
二、父组件在created里面定义$on监听事件
//父组件与子组件都要import bus.js
import {bus} from '../../bus.js'
created(){ bus.$on('backDeal', (res) => { console.log(res) })}
三、在子组件中定义点击事件,调用父组件方法通过$emit将相应值传给父组件
import bus from '@/components/public/bus'
export default {
props: ['attribute', 'item'],
data () {
return {
selectData: this.attribute,
list: [],
key: 0
}
},
mounted () {
this.list = this.eval('(' + this.item.alternative + ')')
},
methods: {
changeEvent (item, selectData) {
item.value = selectData
// this.$emit('backDeal', item)
bus.$emit('backDeal', item)
},
eval (fn) {
var Fn = Function
return new Fn('return ' + fn)()
}
}
}
更多推荐
已为社区贡献2条内容
所有评论(0)