Vue3 + JavaScript 父組件點擊按鈕觸發子組件事件方法

在 Vue 3 中,父組件點擊按鈕觸發子組件事件有以下三種常用方式:

方法 1:使用?ref?直接調用子組件方法(推薦)

vue

復制

下載

<!-- 父組件 -->
<template><button @click="callChildMethod">父組件按鈕</button><ChildComponent ref="childRef" />
</template><script setup>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';const childRef = ref(null);function callChildMethod() {if (childRef.value) {childRef.value.childMethod(); // 直接調用子組件方法}
}
</script>

vue

復制

下載

<!-- 子組件 ChildComponent.vue -->
<script setup>
// 暴露給父組件的方法
const childMethod = () => {console.log('子組件方法被調用');// 執行子組件邏輯
};// 暴露方法給父組件
defineExpose({childMethod
});
</script>

方法 2:通過 Props 傳遞回調函數

vue

復制

下載

<!-- 父組件 -->
<template><button @click="triggerChild">父組件按鈕</button><ChildComponent :parentCallback="callback" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';const callback = () => {console.log('父組件的回調函數被執行');
};function triggerChild() {// 通過觸發子組件事件間接執行// 實際執行邏輯在子組件內
}
</script>

vue

復制

下載

<!-- 子組件 -->
<template><!-- 接收父組件傳遞的回調 -->
</template><script setup>
const props = defineProps(['parentCallback']);// 子組件內執行回調
function executeParentCallback() {if (props.parentCallback) {props.parentCallback();}
}// 暴露方法供父組件調用
defineExpose({ executeParentCallback });
</script>

方法 3:使用自定義事件(子組件觸發)

vue

復制

下載

<!-- 父組件 -->
<template><button @click="emitEvent">父組件按鈕</button><ChildComponent @child-event="handleEvent" />
</template><script setup>
import ChildComponent from './ChildComponent.vue';function emitEvent() {// 觸發自定義事件(實際由子組件監聽)
}function handleEvent(data) {console.log('收到子組件事件:', data);
}
</script>

vue

復制

下載

<!-- 子組件 -->
<script setup>
const emit = defineEmits(['child-event']);// 當需要執行時觸發事件
function triggerEvent() {emit('child-event', { data: '子組件數據' });
}defineExpose({ triggerEvent });
</script>

推薦方案對比

方法優點適用場景
ref?直接調用直接高效,邏輯清晰父組件直接控制子組件特定操作
Props 回調函數符合單向數據流需要傳遞數據到父組件的情況
自定義事件符合組件解耦原則子組件主動通知父組件的場景

最佳實踐建議

  1. 需要直接控制子組件行為時 → 使用?ref?方法

  2. 需要子組件返回數據時 → 使用 Props 回調

  3. 實現組件解耦時 → 使用自定義事件

根據你的具體場景選擇最合適的方式,通常?ref?直調是最直接高效的解決方案。

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

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

相關文章

超強人工智能解決方案套件InfiniSynapse:精準的業務理解、對各種數據源進行全模態聯合智能分析--部署安裝@Ubuntu22.04 @Docker

InfiniSynapse 通過自研的第二代LLM-Native RAG實現了企業業務的理解&#xff0c;精準的Schema召回保證數據的準確性。提供專門為大模型優化的InfiniSQL語言&#xff0c;從而可以更加準確的生成查詢語句&#xff0c;通過 InfiniSQL 引擎讓人類第一次對存儲在各種數據源的全模態…

解決國內無法加載谷歌驗證碼(reCAPTCHA):URL 重定向配置指南

解決國內無法加載谷歌驗證碼&#xff08;reCAPTCHA&#xff09;&#xff1a;URL 重定向配置指南 在搭建網站或使用某些應用時&#xff0c;經常會遇到需要調用谷歌驗證&#xff08;reCAPTCHA&#xff09;API 的情況。然而&#xff0c;由于網絡環境的特殊性&#xff0c;國內多數…

【Qt】如何使用QtInstallerFramework打包Qt程序

使用 Qt Installer Framework 可以將你的 Qt 程序打包成一個帶有安裝向導的安裝包&#xff0c;適用于 Windows、Linux 和 macOS 平臺。以下是完整的打包流程&#xff0c;以你當前開發的 ecgexport 應用為例。 &#x1f9f0; 一、準備工作 1. 安裝 Qt Installer Framework 下載…

如何編寫高效的Prompt:從入門到精通

在人工智能時代&#xff0c;特別是隨著大型語言模型(LLM)如ChatGPT、Claude等的普及&#xff0c;編寫高質量的Prompt(提示詞)已成為一項關鍵技能。一個好的Prompt可以顯著提高AI輸出的質量和相關性&#xff0c;而一個糟糕的Prompt可能導致無用甚至誤導性的結果。本文將帶你深入…

智慧工地云平臺源碼,基于微服務架構+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平臺系統&#xff0c;智慧工地全套源碼&#xff0c;java版智慧工地源碼&#xff0c;支持PC端、大屏端、移動端。 智慧工地聚焦建筑行業的市場需求&#xff0c;提供“平臺網絡終端”的整體解決方案&#xff0c;提供勞務管理、視頻管理、智能監測、綠色施工、安全管…

【機械視覺】Halcon—【十三、實例找各個區域面積和中心點】

找區域面積和中心點 *獲取圖像 read_image (Image, fabrik) *關閉窗口 dev_close_window () *打開窗口 dev_open_window (0, 0, 512, 512, black, WindowID) *設置輸出字體&#xff0c;14號字&#xff0c;Courier字體&#xff0c;粗體 set_display_font (WindowID, 14, mono, …

MongoDB 基礎

一、MongoDB 基礎概念 1. 什么是 MongoDB MongoDB 是一個文檔型數據庫&#xff0c;數據以類似 JSON 的文檔形式存儲&#xff0c;使用 BSON 格式。設計理念是應對大數據量1、高性能和靈活性需求。數據組織方式&#xff1a;數據庫→2集合→文檔&#xff0c;其中集合類似于關系型…

RNN:從記憶困境到序列建模革命

在自然語言處理的戰場上&#xff0c;一個句子中的每個單詞都承載著前文的記憶。當傳統神經網絡面對這種時序依賴束手無策時&#xff0c;循環神經網絡&#xff08;RNN&#xff09; 以獨特的循環結構開啟了序列建模的新紀元。它像人類閱讀般記憶上下文&#xff0c;卻也因記憶衰減…

陽臺光伏配套電表ADL200N-CT/D16-Wf-1

安科瑞 華楠 18706163979 引言 在“雙碳”目標推動下&#xff0c;綠色能源正逐步走進日常生活。陽臺光伏作為一種新型分布式發電方式&#xff0c;憑借靈活安裝、高效節能的特點&#xff0c;成為城市家庭和工商業用戶的新選擇。安科瑞推出的ADL200N-CT/D16-Wf-1陽光光伏電表&a…

功能測試—軟件的生命周期

市場需求調研 可行性研究 從企業的人力儲備、技術儲備、資金儲備等方面出發&#xff0c;論證經濟效益或者社會效益能否達到預期 項目立項 需求開發 輸出&#xff1a;需求規格說明書需求評審&#xff08;需求測試&#xff09;&#xff1a;測試&#xff08;測試負責人、資深測…

PostgreSQL 日常維護

目錄 前言 基本使用 1. 登錄數據庫 2. 數據庫操作 2.1 列出庫 2.2 創建庫 2.3 刪除庫 2.4 切換庫 2.5 查看庫大小 3. 數據表操作 3.1 列出表 3.2 創建表 3.3 復制表 3.4 刪除表 3.5 查看表結構 4. 模式操作命令 4.1 創建模式 4.2 默認模式 4.3 刪除模式 4.4…

STM32F4通用定時器TIM9-TIM14講解及PWM呼吸燈實例解讀

STM32F4通用定時器TIM9-TIM14講解及PWM呼吸燈實例解讀 前言小貼士 通用定時器原理定時器的內部時鐘源通用定時器TIM9-TIM14的對比共同點區別 TIM9-TIM14功能說明時基單元計數模式時鐘選擇 定時器框圖理解和分析TIM10/TIM11/TIM13/TIM14輸入捕獲輸出比較 TIM9和TIM12獨立通道輸入…

whttpserver:一個命令極速搭建文件上傳與下載服務器

whttpserver 是一個簡單的HTTP服務器&#xff0c;類似于python -m http.server&#xff0c;但增加了文件上傳和編輯的功能。 1. 安裝 whttpserver 模塊 # 臨時設置環境變量 PYTHONUTF81&#xff0c;強制 Python 使用 UTF-8 編碼 set PYTHONUTF81 pip install whttpserver 2.…

【0.2 漫畫操作系統原理】

??? 漫畫操作系統原理 ?? 學習目標:深入理解操作系統核心原理,為Java并發編程和性能優化打下堅實基礎 ?? 第一章:操作系統初識篇 ?? 什么是操作系統? 想象一下,你是一個大型圖書館的館長… ?? 沒有操作系統 vs 有操作系統沒有操作系統: 讀者1 → 直接找書架…

第1章 C# 和 .NET 框架 筆記

第1章 C# 和 .NET 框架 1.1 在 .NET 之前 C#為在.NET框架上開發程序而設計的編程語言。 MFC&#xff08;Microsoft Foundation Class&#xff0c;微軟基礎類庫&#xff09; 微軟公司提供的一個類庫&#xff0c;以 C 類的形式封裝了 Windows 的 API&#xff0c;并包含一個應…

Django全棧開發實戰與架構思考

一、框架選型與開發范式 作為Python生態最成熟的Web框架&#xff0c;Django的"電池全包"理念在2.3版本后得到更徹底的貫徹。項目初期通過django-admin startproject生成的腳手架已包含&#xff1a; 自動化ORM遷移系統 內置Admin后臺管理界面 基于WSGI的中間件管道…

微服務--Gateway網關

1. Gateway簡介 Gateway網關是微服務架構中不可或缺的組件&#xff0c;是微服務架構中的統一入口&#xff0c;它作為所有客戶端請求的第一道防線&#xff0c;負責請求的路由、過濾和聚合。 Gateway核心功能 路由(Routing) 根據請求路徑、Header、參數等將請求路由到不同微服…

區塊鏈與人工智能的融合:從信任到智能的IT新引擎

在信息技術&#xff08;IT&#xff09;的飛速發展中&#xff0c;兩大顛覆性技術的交匯正掀起一場革命——區塊鏈與人工智能&#xff08;AI&#xff09;的融合。2025年&#xff0c;隨著數據隱私需求的激增、去中心化應用的爆發以及企業對可信智能系統的追求&#xff0c;區塊鏈與…

Javascript什么是原型和原型鏈,八股文

原型:函數都有prototype屬性,稱之為原型&#xff0c;也稱為原型對象 原型可以放一些屬性和方法&#xff0c;共享給實例對象使用 原型可以做繼承 原型鏈:對象都有__proto__屬性,這個屬性指向它的原型對象,原型對象也是對象,也有__proto__屬性,指向原型對象的原型對象,這樣一層一…

生日悖論理論及在哈希函數碰撞中的應用

目錄 一、生日悖論&#xff08;Birthday Paradox&#xff09;介紹 二、生日悖論的數學解釋 &#xff08;一&#xff09;計算所有人生日都不同的概率 數學推導 示例計算 &#xff08;二&#xff09;至少有兩個人生日相同的概率 三、哈希函數碰撞與生日悖論的關系思考 &a…