vue3組件通信之defineEmits的用法詳解
更新時間:2025年10月11日 14:16:48 作者:一千零一金
defineEmits是Vue3中的一個方法,用于子組件與父組件之間的通信,允許子組件觸發(fā)自定義事件,這個方法不需要引入,可以直接使用,在使用中,父組件和子組件通過defineEmits觸發(fā)和監(jiān)聽事件,以實現(xiàn)數(shù)據(jù)和狀態(tài)的傳遞
一、defineEmits是什么?
defineEmits 是vue3提供的方法,又稱為自定義事件,不需要引入可以直接使用,用于子組件與父組件通信。
二、使用樣例
1.父組件代碼
代碼如下(示例):
<template>
<div>
<h1>事件</h1>
<!-- vue3:原生的DOM事件不管是放在標簽身上、組件標簽身上都是原生DOM事件-->
<!-- 綁定自定義事件xxx:實現(xiàn)子組件給父組件傳遞數(shù)據(jù) -->
<Event2 @xxx="handler3" @click="handler4"></Event2>
</div>
</template>
<script setup lang="ts">
//引入子組件
import Event2 from './Event2.vue';
const handler3 = (param1: any,param2: any)=>{
console.log(param1,param2);
}
//事件回調(diào)--5
const handler4 = (param1: any,param2: any)=>{
console.log(param1,param2);
}
</script>
<style scoped>
</style>
2.子組件代碼
代碼如下(示例):
<template>
<div class="child">
<p>我是子組件2</p>
<button @click="handler">點擊我觸發(fā)自定義事件xxx</button>
<button @click="$emit('click','AK47','J20')">點擊我觸發(fā)自定義事件click</button>
</div>
</template>
<script setup lang="ts">
//利用defineEmits方法返回函數(shù)觸發(fā)自定義事件
//defineEmits方法不需要引入直接使用
let $emit = defineEmits(['xxx','click']);
//按鈕點擊回調(diào)
const handler = () => {
//第一個參數(shù):事件類型 第二個|三個|N參數(shù)即為注入數(shù)據(jù)
$emit('xxx','東風導彈','航母');
};
</script>
<style scoped>
.child {
width: 400px;
height: 200px;
background: pink;
}
</style>
總結(jié)
vue3:原生的DOM事件不管是放在標簽身上、組件標簽身上都是原生DOM事件,利用defineEmits方法返回函數(shù)觸發(fā)自定義事件,defineEmits方法不需要引入直接使用。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何用vue-cli3腳手架搭建一個基于ts的基礎(chǔ)腳手架的方法
這篇文章主要介紹了如何用vue-cli3腳手架搭建一個基于ts的基礎(chǔ)腳手架的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
el-table 選擇框根據(jù)條件設(shè)置某項不可選中的操作代碼
這篇文章主要介紹了el-table 選擇框根據(jù)條件設(shè)置某項不可選中的操作代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-03-03

