聲明觸發的事件
為了讓組件的用法更清晰(作為文檔),同時讓 Vue 能區分事件與透傳 attribute,推薦顯式聲明組件要觸發的事件。根據組件是否使用 <script setup>
,聲明方式有所不同。
使用 <script setup>
時:defineEmits()
宏
在 <script setup>
中,需通過 defineEmits()
宏聲明事件。該宏無需導入,直接使用,返回一個與 $emit
作用相同的 emit
函數,供 <script>
中觸發事件使用。
基礎聲明(數組形式)
<script setup>// 聲明組件會觸發 inFocus 和 submit 事件const emit = defineEmits(['inFocus', 'submit'])// 在腳本中通過 emit 函數觸發事件function buttonClick() {emit('submit') // 觸發 submit 事件,與模板中 $emit 效果一致}</script>
注意:defineEmits()
必須直接放在 <scrip