共计 1951 个字符,预计需要花费 5 分钟才能阅读完成。
在 Vue 中,this.$emit() 方法用于触发自定义事件。它是 Vue 实例的一个方法,可以在组件内部使用。
使用 this.$emit() 方法,你可以向父组件发送自定义事件,并传递数据给父组件。父组件可以通过监听这个自定义事件来执行相应的逻辑。
下面是一个简单的示例,展示了如何在 Vue 组件中使用 this.$emit() 方法:项目文件夹下该组件定义路径 E:myprojectsrccomponentsChildComponentindex.vue
子组件 index.vue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
在上面的示例中,当按钮被点击时,handleButtonClick 方法会被调用。在该方法中,我们使用 this.$emit() 方法触发了一个名为 custom-event 的自定义事件,并传递了字符串’Hello, World!’ 作为数据。
父组件可以通过监听 custom-event 来接收这个自定义事件,并执行相应的逻辑。例如,在父组件中可以这样监听并处理这个事件:
父组件 table.vue
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
|
父组件通过 @custom-event 监听了 custom-event 自定义事件,并在 handleCustomEvent 方法中处理了这个事件。当子组件中的 this.$emit(‘custom-event’,‘Hello, World!’) 被触发时,父组件的 handleCustomEvent 方法会被调用,并且传递的数据’Hello, World!’ 会被打印出来。
注:
通过在 components 选项中注册子组件,可以在父组件的模板中使用该子组件。在这个例子中,父组件可以通过以下方式在模板中使用 ChildComponent:
1 2 3 4 5 |
|
子组件在模板中使用时需要使用短横线命名法(kebab-case),而在组件定义中使用驼峰命名法(camelCase)。你可以在 components 选项中注册多个子组件,并在父组件的模板中使用它们。这样可以实现更好的代码组织和复用。
这就是使用 this.$emit() 方法在 Vue 中触发自定义事件的基本用法。
更多参考:
彻底明白 VUE 修饰符 sync – 简书
Vue 中的 this.$emit() 方法详解_vue.js_脚本之家
原文地址: Vue 中的 this.$emit() 方法详解【父子组件传值常用】