子组件
1 2 3 4 5 6 7 8 9 | < template > //我派发出了事件,这个事件的命名为myclick,连接至父组件 < button @ click = "emit('myclick')" >Emit button > //我啥都没派发 < button >noneEmit button >
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" >emitclick button >
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! " ); } |