vue3標簽中的ref屬性詳解及如何使用$refs獲取元素
更新時間:2024年11月28日 10:16:46 作者:Yunmay
這篇文章主要給大家介紹了關于vue3標簽中的ref屬性詳解及如何使用$refs獲取元素的相關資料,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
- 用在普通DOM標簽上,獲取的是DOM節(jié)點。
- 用在組件標簽上,獲取的是組件實例對象。
用在普通DOM標簽中
獲取dom元素方法一:
- 在需要獲取的元素標簽上添加ref屬性
- 創(chuàng)建ref對象,存儲ref屬性標記的內容
- 通過ref上的value屬性即可獲取當前dom元素
<template>
<p>{{ person.name }}</p>
<!--1.在標簽上寫上ref屬性-->
<div ref="msg">{{ person.age }}</div>
<p>{{ person.gender }}</p>
<button @click="getEle">獲取元素</button>
</template>
<script setup>
import { ref, reactive, computed, getCurrentInstance, onMounted } from "vue";
const person = reactive({
name: "neko",
age: 18,
gender: "女",
});
//2.創(chuàng)建一個引用變量去存儲對div標簽的引用
let msg = ref();
//3.獲取元素
const getEle = () => {
console.log(msg.value); // <div>18</div>
};
</script>
獲取dom元素方法二:
getCurrentInstance():獲取當前組件實例
- 在需要獲取的元素標簽上添加ref屬性
- 通過getCurrentInstance解構出proxy
- 通過proxy.$refs.xxx即可獲取當前dom元素
<template>
<p>{{ person.name }}</p>
<!--1.在標簽上寫上ref屬性-->
<div ref="msg">{{ person.age }}</div>
<p>{{ person.gender }}</p>
<button @click="getEle">獲取元素</button>
</template>
<script setup>
import { ref, reactive, computed, getCurrentInstance, onMounted } from "vue";
//2.通過getCurrentInstance解構出proxy
const { proxy } = getCurrentInstance();
const person = reactive({
name: "neko",
age: 18,
gender: "女",
});
//3.獲取元素
const getEle = () => {
console.log(proxy.$refs.msg); // <div>18</div>
};
</script>
用在組件標簽上
defineExpose作用:向外暴露屬性
<!-- 父組件 -->
<template>
<Demo ref="demoRef"></Demo>
</template>
<script setup>
import { ref, onMounted } from "vue";
import Demo from "./components/Demo.vue";
let demoRef = ref();
onMounted(() => {
console.log(demoRef.value); // 訪問子組件Demo中的屬性
});
</script>
<!-- 子組件 -->
<template>
<p>{{ person.name }}</p>
<div>{{ person.age }}</div>
<p>{{ person.gender }}</p>
</template>
<script setup>
import { ref, reactive, computed, getCurrentInstance, onMounted } from "vue";
const person = reactive({
name: "neko",
age: 18,
gender: "女",
});
let num1 = ref(0);
let num2 = ref(1);
let num3 = ref(2);
<!-- 使用defineExpose將組件中的數(shù)據(jù)交給外部,這樣父組件中的demoRef.value才可以訪問到如下數(shù)據(jù) -->
defineExpose({ num1, num2, num3, person });
</script>總結
到此這篇關于vue3標簽中的ref屬性詳解及如何使用$refs獲取元素的文章就介紹到這了,更多相關vue3 $refs獲取元素內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue2/3?登錄后用戶無操作半小時后自動清除登錄信息退出登錄下線(示例代碼)
這篇文章主要介紹了Vue2/3?登錄后用戶無操作半小時后自動清除登錄信息退出登錄下線,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-07-07
Vue3使用transition實現(xiàn)組件切換的過渡效果
<Transition> 是一個內置組件,這意味著它在任意別的組件中都可以被使用,無需注冊,它可以將進入和離開動畫應用到通過默認插槽傳遞給它的元素或組件上,本文介紹了Vue3使用transition實現(xiàn)組件切換的過渡效果,需要的朋友可以參考下2024-09-09
html中引入Vue.js的cdn實現(xiàn)簡單的文檔單頁
這篇文章主要為大家介紹了html中引入Vue.js的cdn實現(xiàn)簡單的文檔單頁示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08
vue+element-ui中form輸入框無法輸入問題的解決方法
很多初次接觸element-ui的同學,在用到element form組件時可能會遇到input框無法輸入文字的問題,下面這篇文章主要給大家介紹了關于vue+element-ui中form輸入框無法輸入問題的解決方法,需要的朋友可以參考下2023-04-04
element UI 中的 el-tree 實現(xiàn) checkbox&n
在日常項目開發(fā)中,會經(jīng)常遇到,樹形結構的查詢方式,為了快速方便開發(fā),常常會使用到快捷的ui組件去快速搭樹形結構,這里我用的是 element ui 中的 el-tree,對element UI 中的 el-tree 實現(xiàn) checkbox 單選框及 bus 傳遞參數(shù)的方法感興趣的朋友跟隨小編一起看看吧2022-09-09

