子组件
| 1 2 3 4 5 6 7 8 9 | <template> //我派发出了事件,这个事件的命名为myclick,连接至父组件 <button @click="emit('myclick')">Emitbutton> //我啥都没派发 <button>noneEmitbutton> template> |
| 1 2 3 4 5 6 7 | import { defineEmit } from 'vue' // 定义派发事件 const emit = defineEmit(['myclick']) |
父组件
| 1 2 3 4 5 6 | <template> //子组件使用通信的 @myclick事件 → 使用父组件函数 <HelloWorld @myclick="onmyclick"/> template> |
| 1 2 3 4 5 6 7 8 9 10 11 | //导入子组件 import HelloWorld from './components/HelloWorld.vue'; //子组件使用使用父组件函数 const onmyclick = () => { console.log(" Come from HelloWorld! "); } |
方式二
先获取上下文对象,通过该对象的emit()方法进行事件的传出,其他同上
子组件
| 1 2 3 | <template> <button @click="emitclick">emitclickbutton> template> |
| 1 2 3 4 5 6 7 8 9 | // 不使用语法糖 // 子组件组件 setup(props, context) { function fnxx () { context.emit(''myclick'', [实参]); } } |
父组件
| 1 2 3 4 5 | <template> //子组件使用通信的 @myclick事件 → 使用父组件函数 <HelloWorld @myclick="onmyclick"/> template> import HelloWorld from './components/HelloWorld.vue'; const onmyclick = () => { console.log(" Come from HelloWorld! "); } |