Vue3中refs使用方法舉例
前言
在 Vue 3 中,refs 的用法與 Vue 2 相比有了一些改進(jìn),但基本概念仍然相同:通過(guò) ref 來(lái)引用模板中的元素或組件實(shí)例,然后在組件的方法或生命周期鉤子中通過(guò) this.$refs 來(lái)訪問(wèn)這些引用。
然而,在 Vue 3 的 Composition API 中,我們更傾向于使用 ref 函數(shù)來(lái)創(chuàng)建響應(yīng)式引用,而不是使用 this.$refs。這種方式使代碼更加靈活,并且更易于在組合式函數(shù)中使用。
下面我將分別展示 Vue 3 中 Options API 和 Composition API 的 refs 寫法。
使用 Options API 選項(xiàng)式
在 Options API 中,refs 的使用與 Vue 2 類似:
<template>
<div ref="myDiv">Hello, Vue 3!</div>
<button ref="myButton" @click="handleClick">Click me</button>
</template>
<script>
export default {
mounted() {
// 通過(guò) this.$refs 訪問(wèn)元素
const myDiv = this.$refs.myDiv;
const myButton = this.$refs.myButton;
console.log(myDiv); // 輸出 div DOM 元素
console.log(myButton); // 輸出 button DOM 元素
},
methods: {
handleClick() {
const myButton = this.$refs.myButton;
// 在這里可以對(duì) myButton 進(jìn)行操作
}
}
}
</script>
使用 Composition API 組合式
在 Composition API 中,你會(huì)使用 ref 函數(shù)來(lái)創(chuàng)建響應(yīng)式引用,并在 setup 函數(shù)中訪問(wèn)它們:
<template>
<div ref="myDiv">Hello, Vue 3!</div>
<button @click="handleClick">Click me</button>
</template>
<script>
import { ref, onMounted } from 'vue';
export default {
setup() {
// 使用 ref 函數(shù)創(chuàng)建響應(yīng)式引用
const myDiv = ref(null);
// 生命周期鉤子在 Composition API 中通過(guò)函數(shù)實(shí)現(xiàn)
onMounted(() => {
console.log(myDiv.value); // 輸出 div DOM 元素
});
// 方法也作為函數(shù)返回
const handleClick = () => {
console.log(myDiv.value); // 輸出 div DOM 元素
// 在這里可以對(duì) myDiv.value 進(jìn)行操作
};
// 返回需要在模板中使用的響應(yīng)式引用和方法
return {
myDiv,
handleClick
};
}
}
</script>
在 Composition API 的例子中,我們使用了 ref 函數(shù)來(lái)創(chuàng)建一個(gè)響應(yīng)式引用 myDiv,并將其綁定到模板中的 div 元素上。在 setup 函數(shù)中,我們可以直接訪問(wèn) myDiv.value 來(lái)獲取對(duì)應(yīng)的 DOM 元素。注意,由于 ref 創(chuàng)建的是一個(gè)包裝對(duì)象,因此我們需要通過(guò) .value 來(lái)訪問(wèn)或修改其值。
onMounted 是 Vue 3 的 Composition API 提供的一個(gè)生命周期鉤子,它等價(jià)于 Options API 中的 mounted 鉤子。在 onMounted 中,我們可以安全地訪問(wèn) DOM 元素,因?yàn)榇藭r(shí)組件已經(jīng)被掛載到 DOM 中了。
最后,setup 函數(shù)返回一個(gè)對(duì)象,其中包含了需要在模板中使用的響應(yīng)式引用和方法。這樣,模板中的 ref 就可以與 setup 中定義的響應(yīng)式引用關(guān)聯(lián)起來(lái)。
總結(jié)
到此這篇關(guān)于Vue3中refs使用方法的文章就介紹到這了,更多相關(guān)Vue3 refs使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
前端記錄輸入框的歷史輸入記錄實(shí)現(xiàn)步驟(輸入框數(shù)據(jù)記憶功能)
這篇文章主要介紹了如何使用localStorage來(lái)記錄每個(gè)輸入框的歷史輸入記錄,并在用戶輸入時(shí)動(dòng)態(tài)更新這些記錄,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
基于vue-cli創(chuàng)建的項(xiàng)目的目錄結(jié)構(gòu)及說(shuō)明介紹
下面小編就為大家分享一篇基于vue-cli創(chuàng)建的項(xiàng)目的目錄結(jié)構(gòu)及說(shuō)明介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-11-11
如何寫好一個(gè)vue組件,老夫的一年經(jīng)驗(yàn)全在這了(推薦)
這篇文章主要介紹了如何寫好一個(gè)vue組件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
如何解決ERROR Invalid options in vue.config.
這篇文章主要介紹了如何解決ERROR Invalid options in vue.config.js:“resolve“ is not allowed問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
使用vue實(shí)現(xiàn)通過(guò)變量動(dòng)態(tài)拼接url
這篇文章主要介紹了使用vue實(shí)現(xiàn)通過(guò)變量動(dòng)態(tài)拼接url,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
Vue+EleMentUI實(shí)現(xiàn)el-table-colum表格select下拉框可編輯功能實(shí)例
這篇文章主要給大家介紹了關(guān)于Vue+EleMentUI實(shí)現(xiàn)el-table-colum表格select下拉框可編輯功能的相關(guān)資料,element-UI表格的使用相信大家都不陌生,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2023-07-07
簡(jiǎn)單方法實(shí)現(xiàn)Vue?無(wú)限滾動(dòng)組件示例
這篇文章主要為大家介紹了簡(jiǎn)單方法實(shí)現(xiàn)Vue?無(wú)限滾動(dòng)組件示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
Vue2.0+Vux搭建一個(gè)完整的移動(dòng)webApp項(xiàng)目的示例
這篇文章主要介紹了Vue2.0+Vux搭建一個(gè)完整的移動(dòng)webApp項(xiàng)目的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03

