最新国产好看的视频,伊人天堂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()方法進(jìn)行事件的傳出,其他同上

子組件

<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)文章

最新評論

抚松县| 北流市| 加查县| 乌拉特中旗| 玛纳斯县| 张北县| 大方县| 梓潼县| 西华县| 定陶县| 彩票| 乌拉特前旗| 峨山| 徐闻县| 伊金霍洛旗| 如东县| 苏州市| 上蔡县| 颍上县| 巴东县| 宜宾县| 岳池县| 荥阳市| 绍兴市| 荆州市| 新乡市| 舒兰市| 镇沅| 桑日县| 镇巴县| 泾源县| 渝中区| 措美县| 尉氏县| 泗洪县| 寿阳县| 武鸣县| 逊克县| 定结县| 合水县| 郎溪县|