Vue3學習(組合式API——ref模版引用與defineExpose編譯宏函數)

目錄

一、ref模版引用。

(1)基本介紹。

(2)核心基本步驟。(以獲取DOM、組件為例)

(3)案例:獲取dom對象演示。

<1>需求:點擊按鈕,讓輸入框聚焦。

(4)案例:獲取組件實例內的屬性和方法。(defineExpose編譯宏函數)

二、ref模版引用與defineExpose編譯宏函數小結。


一、ref模版引用。

(1)基本介紹。
  • ref 模板引用是 Vue 提供的直接操作 DOM 或子組件的工具。
  • 通過ref標識獲取頁面中真實的dom對象或者組件實例對象,從而就可以調用dom里面的屬性和方法、組件內的屬性和方法
  • 在 Vue3 組合式 API 中,ref 模板引用是用于在 JavaScript 中直接獲取 DOM 元素或子組件實例引用的機制
(2)核心基本步驟。(以獲取DOM、組件為例)
  1. 使用 ref 函數創建一個(ref對象)響應式引用(如 const inputRef = ref(null))。其中初始值通常設為 null(表示無引用)。
  2. 通過 ref 指令將變量與 DOM 元素或子組件關聯。(如 <input ref="inputRef" /><ChildComponent ref="childRef" />)。這一步就是通過ref標識綁定ref對象到標簽
  3. 模板渲染完成后!!ref 變量會自動指向對應的 DOM 元素或子組件實例。可在 onMounted 鉤子(生命周期函數)或其他邏輯中使用。
(3)案例:獲取dom對象演示。
<1>需求:點擊按鈕,讓輸入框聚焦。
  • 代碼示例。
<script setup>
//ref模版引用
import {onMounted, ref} from "vue";
//1.調用ref函數,生成一個ref對象
const input = ref(null)//使用生命周期鉤子:onMounted
onMounted(() => {//可以在頁面渲染完成后,輸入框自動聚焦/*input.value.focus()*/
})const inputFocus = () =>{console.log(input.value)//3.通過ref對象.value即可訪問綁定到的元素(必須渲染完成后才能拿到)input.value.focus()
}
</script><template><div>
<!--    2.通過ref標識,進行綁定 --><input ref="input" type="text"><button @click="inputFocus" style="margin-left: 10px">點擊讓輸入框聚焦</button></div>
</template><style scoped>
</style>
  • 效果。


(4)案例:獲取組件實例內的屬性和方法。(defineExpose編譯宏函數)
  • 默認情況下:<script setup>語法糖下組件內部的屬性和方法是不開放給父組件訪問的!


  • 想在父組件訪問到可使用?defineExpose 編譯宏指定屬性、方法允許訪問!!
  • App.vue代碼示例。
<script setup>
//引入子組件
import Test from "./components/Test.vue";
//ref模版引用
import {ref} from "vue";
//1.調用ref函數,生成一個ref對象
const testRef = ref(null)
const getTest = () => {console.log(testRef.value)
}
</script><template><div><h1>父組件App.vue</h1><div class="test"><!--    2.通過ref標識,進行綁定 --><Test ref="testRef"></Test><button @click="getTest">獲取組件內部屬性和方法</button></div></div>
</template><style scoped>
.test {border: 1px solid #000;padding: 10px;
}
</style>
  • Test.vue代碼示例。
<script setup>
const count = 999
const sayHi = () =>{console.log('打招呼')
}
defineExpose({count,sayHi
})
</script><template><div><h2>我是用于測試的組件</h2></div>
</template><style scoped></style>
  • 頁面渲染效果。


  • 父組件中通過ref模版引用獲取組件實例并使用組件內部的屬性和函數




二、ref模版引用與defineExpose編譯宏函數小結。

  1. 獲取ref模版引用的時機是:組件掛載完畢之后!
  2. defineExpose編譯宏函數的作用:顯示暴露組件內部的屬性和方法(函數)

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

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

相關文章

公鏈開發及其配套設施:錢包與區塊鏈瀏覽器

公鏈開發及其配套設施&#xff1a;錢包與區塊鏈瀏覽器的技術架構與生態實踐 ——2025年區塊鏈基礎設施建設的核心邏輯與創新突破 一、公鏈開發&#xff1a;構建去中心化世界的基石 1. 技術架構設計的三重挑戰 公鏈作為開放的區塊鏈網絡&#xff0c;需在性能、安全性與去中心…

Kotlin 作用域函數(let、run、with、apply、also)對比

Kotlin 的 作用域函數&#xff08;Scope Functions&#xff09; 是簡化代碼邏輯的重要工具&#xff0c;它們通過臨時作用域為對象提供更簡潔的操作方式。以下是 let、run、with、apply、also 的對比分析&#xff1a; 一、核心區別對比表 函數上下文對象引用返回值是否擴展函數…

14、Python時間表示:Unix時間戳、毫秒微秒精度與time模塊實戰

適合人群&#xff1a;零基礎自學者 | 編程小白快速入門 閱讀時長&#xff1a;約5分鐘 文章目錄 一、問題&#xff1a;計算機中的時間的表示、Unix時間點&#xff1f;1、例子1&#xff1a;計算機的“生日”&#xff1a;Unix時間點2、答案&#xff1a;&#xff08;1&#xff09;U…

AI日報 - 2024年5月17日

&#x1f31f; 今日概覽 (60秒速覽) ▎&#x1f916; 大模型前沿 | OpenAI推出自主編碼代理Codex&#xff1b;Google DeepMind發布Gemini驅動的編碼代理AlphaEvolve&#xff0c;能設計先進算法&#xff1b;Meta旗艦AI模型Llama 4 Behemoth發布推遲。 Codex能并行處理多任務&…

DriveMM:用于自動駕駛的一體化大型多模態模型——論文閱讀

《DriveMM: All-in-One Large Multimodal Model for Autonomous Driving》2024年12月發表&#xff0c;來自中山大學深圳分校和美團的論文。 大型多模態模型&#xff08;LMM&#xff09;通過整合大型語言模型&#xff0c;在自動駕駛&#xff08;AD&#xff09;中表現出卓越的理解…

C++_STL_map與set

1. 關聯式容器 在初階階段&#xff0c;我們已經接觸過STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、 forward_list(C11)等&#xff0c;這些容器統稱為序列式容器&#xff0c;因為其底層為線性序列的數據結構&#xff0c;里面 存儲的是元素本身。那什么是…

【嵌入式開發-RGB 全彩 LED】

嵌入式開發-RGB 全彩 LED ■ RGB 全彩 LED簡介■ 電路設計■ ■ RGB 全彩 LED簡介 RGB 全彩 LED 模塊顯示不同的顏色。 ■ 電路設計 全彩 LED 使用 PA5、 藍色&#xff08;B&#xff09; TIM2_CHN3 PA1、 綠色&#xff08;G&#xff09;TIM2_CHN2 PA2、 紅色&#xff08;R&am…

計算機網絡:手機和基站之間的通信原理是什么?

手機與基站之間的通信是無線通信技術的核心應用之一,涉及復雜的物理層傳輸、協議交互和網絡管理機制。以下從技術原理、通信流程和關鍵技術三個層面深入解析這一過程: 一、蜂窩網絡基礎架構 1. 蜂窩結構設計 基本原理:將服務區域劃分為多個六邊形“蜂窩小區”,每個小區由*…

【Docker】Docker安裝RabbitMQ

目錄 1.拉取鏡像 2. 創建掛載目錄 3.創建和啟動 4.登錄管理端 1.拉取鏡像 推薦使用帶 Web 管理界面的官方鏡像&#xff08;management&#xff09; # 拉取docker鏡像 docker pull rabbitmq:management響應內容&#xff1a; 2. 創建掛載目錄 創建掛載目錄和日志目錄 #rabb…

交叉編譯源碼的方式移植ffmpeg-rockchip

獲取ffmpeg源碼 git submodule add -f https://github.com/FFmpeg/FFmpeg.git thirdparty/FFmpeg 瑞芯微ffmpeg-rk git clone https://github.com/jjm2473/ffmpeg-rk/tree/enc# 參考的一位博主的說法 使用 ffmpeg-rochip 的好處 傳統的使用硬件編解碼的開發思路是&#xf…

9.0 C# 調用solidworks介紹1

一、C# 與 SolidWorks 聯合開發概述 SolidWorks 提供了完整的 API(應用程序接口),允許開發者使用 C# 等編程語言進行二次開發,實現自動化設計、定制功能等。 主要技術要點包括: 1. API 結構:SolidWorks API 是基于 COM 的接口,包含數百個對象和數千個方法…

AD 多層線路及裝配圖PDF的輸出

裝配圖的輸出&#xff1a; 1.點開‘智能PDF’ 2. 設置顯示頂層&#xff1a; 設置顯示底層&#xff1a; 多層線路的輸出 同樣使用‘智能PDF’

SpringBoot + Shiro + JWT 實現認證與授權完整方案實現

SpringBoot Shiro JWT 實現認證與授權完整方案 下面博主將詳細介紹如何使用 SpringBoot 整合 Shiro 和 JWT 實現安全的認證授權系統&#xff0c;包含核心代碼實現和最佳實踐。 一、技術棧組成 技術組件- 作用版本要求SpringBoot基礎框架2.7.xApache Shiro認證和授權核心1.…

PCIe數據采集系統詳解

PCIe數據采集系統詳解 在上篇文章中&#xff0c;廢了老大勁兒我們寫出了PCIe數據采集系統&#xff1b;其中各個模塊各司其職&#xff0c;相互配合。完成了從數據采集到高速存儲到DDR3的全過程。今天我們呢就來詳細講解他們之間的關系&#xff1f;以及各個模塊的關鍵點&#xff…

2025云智算技術白皮書

1. 云智算的演進背景 傳統云計算面臨三大挑戰&#xff1a; 算力需求激增&#xff1a;AI大模型訓練需十萬卡級GPU集群&#xff0c;資源調度能力不足。網絡性能瓶頸&#xff1a;TB級參數同步對低時延、高吞吐要求遠超傳統網絡架構。服務形態單一&#xff1a;IaaS/PaaS無法覆蓋A…

C語言編程中的時間處理

最簡單的time 在C語言編程中&#xff0c;處理時間最簡單的函數就是time了。它的原型為&#xff1a; #include <time.h> time_t time(time_t *_Nullable tloc);返回自從EPOCH&#xff0c;即1970年1月1日的零點零時零分&#xff0c;到當前的秒數。 輸入參數可以是NULL。…

適應性神經樹:當深度學習遇上決策樹的“生長法則”

1st author: Ryutaro Tanno video: Video from London ML meetup paper: Adaptive Neural Trees ICML 2019 code: rtanno21609/AdaptiveNeuralTrees: Adaptive Neural Trees 背景 在機器學習領域&#xff0c;神經網絡&#xff08;NNs&#xff09;憑借其強大的表示學習能力&…

InitVerse節點部署教程

項目介紹: InitVerse 是一個為新興企業量身定制的自動化 Web3 SaaS 平臺,只需單擊幾下即可快速開發和部署 DApp。在 INIChain 和 INICloud 的支持下,InitVerse 可以根據需求動態調整計算資源,實現高效的任務處理,同時提供更高的安全性、可用性和可擴展性。 系統要求: C…

阿里開源通義萬相 Wan2.1-VACE,開啟視頻創作新時代

0.前言 阿里巴巴于2025年5月14日正式開源了其最新的AI視頻生成與編輯模型——通義萬相Wan2.1-VACE。這一模型是業界功能最全面的視頻生成與編輯工具&#xff0c;能夠同時支持多種視頻生成和編輯任務&#xff0c;包括文生視頻、圖像參考視頻生成、視頻重繪、局部編輯、背景延展…

解決“VMware另一個程序已鎖定文件的一部分,進程無法訪問“

問題描述 打開VMware里的虛擬機時&#xff0c;彈出"另一個程序已鎖定文件的一部分&#xff0c;進程無法訪問"如圖所示&#xff1a; 這是VM虛擬機的保護機制。虛擬機運行時&#xff0c;為防止數據被篡改&#xff0c;會將所運行的文件保護起來。當虛擬機崩潰或者強制…