Vue.js 仅用于一个视图的事件总线
我需要创建一个只在一个页面上工作的事件总线,这很重要,因为我有几个页面(视图)具有相同的事件侦听器名称。还有一些组件也是由组件组成的,我不能只使用全局事件总线。您会采取哪种方法?对于使用事件总线的解决方案,我会给组件一个属性作为标识,让我们将其命名为Vue.js 仅用于一个视图的事件总线,vue.js,Vue.js,我需要创建一个只在一个页面上工作的事件总线,这很重要,因为我有几个页面(视图)具有相同的事件侦听器名称。还有一些组件也是由组件组成的,我不能只使用全局事件总线。您会采取哪种方法?对于使用事件总线的解决方案,我会给组件一个属性作为标识,让我们将其命名为customId。您可以使用诸如nanoid之类的库作为默认值,并为目标页面设置自定义库 export default { name: 'MyComponent', props: { customId: { type:
customId
。您可以使用诸如nanoid
之类的库作为默认值,并为目标页面设置自定义库
export default {
name: 'MyComponent',
props: {
customId: {
type: String,
}
},
data() {
return {
innerId: this.customId || nanoid(),
}
}
}
<my-component custom-id="event-listener" />
在目标页面中
export default {
name: 'MyComponent',
props: {
customId: {
type: String,
}
},
data() {
return {
innerId: this.customId || nanoid(),
}
}
}
<my-component custom-id="event-listener" />
问题是什么还不清楚。如果您从一个组件发出事件,则它适用于该组件。如果您全局发出事件,请使用名称空间以避免名称冲突。您是否需要eventbus或尚未学习@something=“”、this.$emit('something')?