从vue.js中的插槽访问组件数据(郊区无声明模板)

从vue.js中的插槽访问组件数据(郊区无声明模板),vue.js,slot,Vue.js,Slot,正在创建用于无框架窗口的菜单组件。但我不知道如何将事件绑定到插槽中。我想建立这样的结构 在WindowBar.vue中 在AppMenuBar.vue中(名称为app菜单栏) 导出默认值{ 名称:“应用程序菜单栏”, 数据(){ 返回{ 当选者:'' } } } 在AppMenu.vue中(名称为app menu) {{label}} 导出默认值{ 名称:“应用程序菜单”, 道具:{ 标签:字符串 }, 计算:{ 当选(){ //这是来自AppMenuBar的绑定数据 返回this.o

正在创建用于无框架窗口的菜单组件。但我不知道如何将事件绑定到插槽中。我想建立这样的结构

在WindowBar.vue中


在AppMenuBar.vue中(名称为app菜单栏)


导出默认值{
名称:“应用程序菜单栏”,
数据(){
返回{
当选者:''
}
}
}
在AppMenu.vue中(名称为app menu)


{{label}}
导出默认值{
名称:“应用程序菜单”,
道具:{
标签:字符串
},
计算:{
当选(){
//这是来自AppMenuBar的绑定数据
返回this.onSelected==this.label“selected”:”
}
},
方法:{
doClick(){
this.$emit('doClick',this.label)
}
},
挂载(){
console.log(this.onSelected)//未定义
}
}

如何将数据绑定到插槽中,例如.onSelected?

您不能在
上收听事件。你可以在这里看到更详细的答案

在您的情况下,我建议将所有业务逻辑放在父组件(WindowBar.vue)中。之后,您可以控制孩子的组件事件和道具。或者,如果存在某些特定情况,并且希望通过嵌套组件传递事件,则可以使用事件总线。有关事件总线的更多信息,您可以在此处阅读: