Vue中this.$refs的使用及說明
更新時間:2025年08月26日 14:39:59 作者:咸魚妹妹
Vue中this.$refs用于訪問通過ref注冊的元素或組件,需在mounted后使用,可在JS操作DOM或調(diào)用子組件方法,注意避免模板中直接使用
Vue使用this.$refs
父組件
<template>
<div>
<!--
ref 寫在標(biāo)簽上時:this.$refs.名字 獲取的是標(biāo)簽對應(yīng)的dom元素
ref寫在組件上時:這時候獲取到的是子組件(比如navChild)的引用
-->
<Child ref="navChild"/>
</div>
</template>
<script>
import Child from "@/components/child";
export default {
name: "App",
methods: {
navFn(){
// this.$refs.navChild 或者 this.$refs['navChild']
// 第一種使用情況(父組件調(diào)用子組件的方法)
this.$ref.navChild.initData();
// 第二種使用情況(父組件調(diào)用子組件的方法,并通過方法傳值)
this.$refs.navChild.initData('我是父組件的傳值')
// 第四種使用情況(父組件獲取子組件的數(shù)據(jù))
this.$ref.navChild.status
// 第四種使用情況(父組件獲取子組件的數(shù)據(jù),并改變數(shù)據(jù))
this.$ref.navChild.status = 1;
}
},
};
</script>
子組件
<template>
<div>
<div>{{message}}</div>
</div>
</template>
<script>
export default {
name: "Child",
data() {
return {
message:'這是子組件',
status:0
};
},
components: {},
created() {
console.log(this.$data.status); //1(通過this.$data獲取所有變量)
this.status = this.$data.status;
},
methods:{
initData(val){
// 方法二:獲取父組件的傳值
console.log(val); //我是父組件的傳值
this.message = val;
let name = 'Hello World';
}
}
};
</script>
<style scoped>
</style>
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解在Vue中如何實現(xiàn)表單圖片裁剪與預(yù)覽
在前端開發(fā)中,表單提交是一個常見的操作,有時候,我們需要上傳圖片,但是上傳的圖片可能會非常大,這會增加服務(wù)器的負擔(dān),同時也會降低用戶的體驗,因此,我們通常需要對上傳的圖片進行裁剪和預(yù)覽,本文主要給大家介紹如何在Vue中進行表單圖片裁剪與預(yù)覽2023-06-06
vue2中的keep-alive使用總結(jié)及注意事項
vue2.0提供了一個keep-alive組件用來緩存組件,避免多次加載相應(yīng)的組件,減少性能消耗。本文給大家介紹vue2中的keep-alive使用總結(jié)及注意事項,需要的朋友參考下吧2017-12-12

