最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3.0在子組件中觸發(fā)的父組件函數(shù)方式

 更新時間:2022年04月29日 10:28:34   作者:Cirtus?Soda  
這篇文章主要介紹了vue3.0在子組件中觸發(fā)的父組件函數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

注:本文是基于vue3.0的語法

方式一

  • 在script中引入 defineEmit ,import { defineEmit } from 'vue' ;
  • 通過defineEmit定義事件,例如:const emit = defineEmit(['myclick']);
  • 子組件定義了ClickEmit 事件,并且返回了一個函數(shù),在點擊事件里通過 emit("myclick") 傳遞出事件給父組件
  • 在父組件中的 引用的子組件的標(biāo)簽上定義上要傳遞的事件,具體代碼如下

子組件

<template>
?
? //我派發(fā)出了事件,這個事件的命名為myclick,連接至父組件
? <button @click="emit('myclick')">Emit</button>
?
? //我啥都沒派發(fā)
? <button>noneEmit</button>
?
</template>
<script setup>
import { defineEmit } from 'vue' ?
?
// 定義派發(fā)事件
const emit = defineEmit(['myclick'])
?
</script>

父組件

<template>?
?
? //子組件使用通信的 @myclick事件 → 使用父組件函數(shù)
? <HelloWorld @myclick="onmyclick"/>
?
</template>
<script setup>
?
//導(dǎo)入子組件
import HelloWorld from './components/HelloWorld.vue';?
?
//子組件使用使用父組件函數(shù)
const onmyclick = () => {
? console.log(" Come from HelloWorld! ");
}?
?
</script>?

方式二

先獲取上下文對象,通過該對象的emit()方法進行事件的傳出,其他同上

子組件

<template> ?
? <button @click="emitclick">emitclick</button>
</template>
<script setup>?
import { useContext } from 'vue'?
?
// 獲取上下文
const ctx = useContext();?
const emitclick = () => {?
? ctx.emit('myclick');
}?
</script>?

父組件 

<template>?
?
? //子組件使用通信的 @myclick事件 → 使用父組件函數(shù)
? <HelloWorld @myclick="onmyclick"/>
</template>?
<script setup>
import HelloWorld from './components/HelloWorld.vue';
?
const onmyclick = () => {
? console.log(" Come from HelloWorld! ");
}?
</script>?

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

普格县| 阿拉善右旗| 龙门县| 虞城县| 南充市| 郧西县| 南木林县| 边坝县| 资中县| 望谟县| 巴东县| 永平县| 台前县| 通辽市| 慈溪市| 东港市| 涞水县| 门头沟区| 昂仁县| 灵璧县| 阿克陶县| 车致| 昌吉市| 崇信县| 南雄市| 喀喇沁旗| 陇西县| 修武县| 宽甸| 宾川县| 博客| 鹤山市| 奇台县| 修武县| 呈贡县| 皋兰县| 呼图壁县| 吴桥县| 惠东县| 东兰县| 搜索|