vue3中子組件調用父組件事件

在 Vue 3 中,子組件調用父組件的事件(或方法)的方式與 Vue 2 類似,但 Vue 3 引入了 Composition API,這可能會改變你組織代碼的方式。不過,基本的通信機制——通過自定義事件 ($emit) 通知父組件——仍然保持不變。

以下是如何在 Vue 3 中使用 Options API 和 Composition API 的示例:

使用 Options API

父組件 (ParentComponent.vue)

<template> 
<div> 
<h2>父組件</h2> 
<ChildComponent @child-event="handleChildEvent" /> 
</div> 
</template> <script> 
import ChildComponent from './ChildComponent.vue'; export default { 
components: { 
ChildComponent 
}, 
methods: { 
handleChildEvent(payload) { 
console.log('子組件觸發的事件被父組件捕獲', payload); 
} 
} 
}; 
</script>

子組件 (ChildComponent.vue)

<template> 
<div> 
<h3>子組件</h3> 
<button @click="triggerParentEvent">觸發父組件事件</button> 
</div> 
</template> <script> 
export default { 
methods: { 
triggerParentEvent() { 
this.$emit('child-event', { message: '來自子組件的數據' }); 
} 
} 
}; 
</script>

使用 Composition API

父組件 (ParentComponent.vue)?(這里父組件使用 Options API 或 Composition API 都可以)

子組件 (ChildComponentWithComposition.vue)

<template> 
<div> 
<h3>使用 Composition API 的子組件</h3> 
<button @click="triggerParentEvent">觸發父組件事件</button> 
</div> 
</template> <script> 
import { defineComponent, ref } from 'vue'; export default defineComponent({ 
setup(props, { emit }) { 
const triggerParentEvent = () => { 
emit('child-event', { message: '來自使用 Composition API 的子組件的數據' }); 
}; return { 
triggerParentEvent 
}; 
} 
}); 
</script>

在 Composition API 中,setup?函數接收兩個參數:props?和?contextcontext?是一個對象,它包含了?attrsslots?和?emit?等屬性。你可以通過?context.emit?來觸發事件,但更常見的做法是將?emit?直接從?setup?函數的參數中解構出來,如上面的示例所示。

在這兩種情況下,子組件都通過?$emit?方法觸發一個名為?child-event?的事件,并將一些數據作為有效負載傳遞給父組件。父組件監聽這個事件,并在事件觸發時調用相應的方法。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/35600.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35600.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/35600.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

總結:DataX

一、介紹 本文主要介紹DataX的安裝與使用。 二、安裝 安裝&#xff1a;DataX/userGuid.md at master alibaba/DataX GitHub 六、案例 實現從MySQL同步數據到HDFS&#xff0c;然后使用Hive進行聚合計算并將結果存儲回MySQL。 步驟2&#xff1a;使用DataX同步MySQL數據到H…

Day28:回溯法 491.遞增子序列 46.全排列 47.全排列 II 332.重新安排行程 51. N皇后 37. 解數獨

491. 非遞減子序列 給你一個整數數組 nums &#xff0c;找出并返回所有該數組中不同的遞增子序列&#xff0c;遞增子序列中 至少有兩個元素 。你可以按 任意順序 返回答案。 數組中可能含有重復元素&#xff0c;如出現兩個整數相等&#xff0c;也可以視作遞增序列的一種特殊情…

Atcoder ABC359E Water Tank 題解

題目傳送門 題解 分析 分類討論。 記第 i i i 個答案為 a n s i 1 ans_i1 ansi?1。 第 i i i 個數就是目前的最大值。 顯然&#xff0c; a n s i h i i ans_ih_i \times i ansi?hi?i。第 i i i 個數就是目前的最大值。 記 l a s t i last_i lasti? 為 i i i …

網絡安全學習路線圖(2024版詳解)

近期&#xff0c;大家在網上對于網絡安全討論比較多&#xff0c;想要學習的人也不少&#xff0c;但是需要學習哪些內容&#xff0c;按照什么順序去學習呢&#xff1f;其實我們已經出國多版本的網絡安全學習路線圖&#xff0c;一直以來效果也比較不錯&#xff0c;本次我們針對市…

Java中多態的實現原理解析

Java中多態的實現原理解析 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;在本文中&#xff0c;我們將深入探討Java中多態的實現原理及其應用。多態是面向對象編…

centos中查看服務的日志

在CentOS中查看服務的日志通常涉及查看系統日志文件&#xff0c;這些文件通常位于/var/log/目錄下。不同的服務可能會有不同的日志文件。以下是一些常見的日志文件和查看它們的方法&#xff1a; 1. **系統日志**&#xff1a;系統日志通常存儲在/var/log/messages或/var/log/sy…

學會python——生成日志信息(python實例十二)

目錄 1、認識Python 2、環境與工具 2.1 python環境 2.2 Visual Studio Code編譯 3、生成日志信息 3.1 代碼構思 3.2 代碼示例 3.3 運行結果 4、總結 1、認識Python Python 是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。 Python 的設計具有很強的…

MySQL serverTimezone=UTC

在數據庫連接字符串中使用 serverTimezoneUTC 是一個常見的配置選項&#xff0c;特別是當數據庫服務器和應用程序服務器位于不同的時區時。這個選項指定了數據庫服務器應當使用的時區&#xff0c;以確保日期和時間數據在客戶端和服務器之間正確傳輸和處理。 UTC&#xff08;協…

Vue-雙向數據綁定指令

v-model指令 雙向數據綁定就是當數據設置給表單元素時&#xff0c;修改這個數據會修改表單元素的值&#xff0c; 修改表單元素的值同樣也會修改這個數據 <body><div id"app"><input type"text" v-model"name"><p>{{name…

利用 Swifter 加速 Pandas 操作的詳細教程

利用 Swifter 加速 Pandas 操作的詳細教程 引言 Pandas 是數據分析中常用的庫&#xff0c;但在處理大型數據集時效率可能會較低。Swifter 提供了一種簡便的方法&#xff0c;通過并行處理來顯著加速 Pandas 操作。 Swifter 簡介 Swifter 是一個開源庫&#xff0c;旨在自動優…

一個項目學習Vue3---創建一個 Vue 應用

步驟1&#xff1a;安裝符合要求的node版本 目前官網要求使用的node.js版本為18.3及其以上 所以我們要安裝node.js 18.3及其以上版本 NVM安裝教程&#xff1a;一個項目學習Vue3---NVM和NPM安裝-CSDN博客 若不想安裝NVM&#xff0c;可以直接下載適合自己的node版本Node.js — …

Go 延遲調用 defer

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

硬件實用技巧:電阻精度和常用阻值表

若該文為原創文章&#xff0c;轉載請注明原文出處 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139986658 長沙紅胖子Qt&#xff08;長沙創微智科&#xff09;博文大全&#xff1a;開發技術集合&#xff08;包含Qt實用技術、樹莓派、三維、OpenCV…

Linux Vim最全面的教程

Vim編輯器概述 Vim是一款功能強大的文本編輯器&#xff0c;廣泛應用于Linux和Unix系統中。它是Vi編輯器的增強版&#xff0c;提供了更多的功能和更好的用戶界面。Vim的特點包括多模式編輯、高度可配置性、豐富的插件生態系統以及強大的文本處理能力。 Vim的基本操作 Vim的基…

C++ 20新特性之模塊

&#x1f4a1; 如果想閱讀最新的文章&#xff0c;或者有技術問題需要交流和溝通&#xff0c;可搜索并關注微信公眾號“希望睿智”。 為什么要引入模塊 在C 20之前&#xff0c;所有的代碼組織都依賴于預處理器和頭文件。這種方式主要存在以下四個問題&#xff1a;一是大型項目中…

來了,你的第一個AI智能體

為了能直觀的感受AI智能體&#xff0c;最好的方法是親手開發一個智能體&#xff0c;當然&#xff0c;這個智能體不能太復雜&#xff0c;否則難度太大&#xff0c;會打擊我們的熱情的&#xff0c;熱情是很寶貴的資源&#xff0c;必須要小心呵護。 我們在國內AI平臺語聚AI上搭建…

Batch入門教程

Batch學習在多個領域有不同的應用&#xff0c;但最常見的是在機器學習和教育學習領域。以下是一個關于Batch學習入門的清晰指南&#xff0c;將分別介紹這兩個領域中的Batch學習概念、方法和一些實用信息。 1. 機器學習中的Batch學習 定義與概念 Batch_Size&#xff1a;在機器…

RK3588 Android13 TvSetting 中增加 WebView 切換菜單

前言 電視產品,客戶要求在設置中設備偏好設置子菜單下增加一個 WebView切換菜單,一開始不知道怎么下手,后來想起來在設置開發者選項里有一個類似的菜單, 去把實現邏輯搞出來應該就ok。 效果圖 TvSetting 部分修改文件清單 packages/apps/TvSettings/Settings/res/values…

【吊打面試官系列-Mysql面試題】為表中得字段選擇合適得數據類型

大家好&#xff0c;我是鋒哥。今天分享關于 【為表中得字段選擇合適得數據類型】面試題&#xff0c;希望對大家有幫助&#xff1b; 為表中得字段選擇合適得數據類型 字段類型優先級: 整形>date,time>enum,char>varchar>blob,text 優先考慮數字類型&#xff0c;其次…

npm-check【實用教程】升級項目中的依賴

安裝 npm-check npm i -g npm-check檢查項目中的依賴 npm-check會顯示項目中沒有使用&#xff0c;以及有新版本的依賴 升級項目中的依賴 npm-check -u方向鍵上下可以移動圖中左側的箭頭空格鍵可選中/取消選中標注為 Major Update 和 Non-semver 類的版本&#xff0c;需去官網查…