Vue中ref和$refs的介紹以及使用方法示例
前言
在JavaScript中需要通過document.querySelector("#demo")來獲取dom節(jié)點(diǎn),然后再獲取這個(gè)節(jié)點(diǎn)的值。在Vue中,我們不用獲取dom節(jié)點(diǎn),元素綁定ref之后,直接通過this.$refs即可調(diào)用,這樣可以減少獲取dom節(jié)點(diǎn)的消耗。
ref介紹
ref被用來給元素或子組件注冊(cè)引用信息。引用信息將會(huì)注冊(cè)在父組件的 $refs對(duì)象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子組件上,引用就指向該子組件實(shí)例
通俗的講,ref特性就是為元素或子組件賦予一個(gè)ID引用,通過this.$refs.refName來訪問元素或子組件的實(shí)例
<p ref="p">Hello</p> <children ref="children"></children>
this.$refs.p this.$refs.children
this.$refs介紹
this.$refs是一個(gè)對(duì)象,持有當(dāng)前組件中注冊(cè)過 ref特性的所有 DOM 元素和子組件實(shí)例
注意: $refs只有在組件渲染完成后才填充,在初始渲染的時(shí)候不能訪問它們,并且它是非響應(yīng)式的,因此不能用它在模板中做數(shù)據(jù)綁定
注意:
當(dāng)ref和v-for一起使用時(shí),獲取到的引用將會(huì)是一個(gè)數(shù)組,包含循環(huán)數(shù)組源
<template>
<div>
<div ref="myDiv" v-for="(item, index) in arr" :key="index">{{item}}</div>
</div>
</template>
<script>
export default {
data() {
return {
arr: ['one', 'two', 'three', 'four']
}
},
mounted() {
console.log(this.$refs.myDiv)
},
methods: {}
}
</script>
<style lang="sass" scoped>
</style>

實(shí)例(通過ref特性調(diào)用子組件的方法)
【1】子組件code:
<template>
<div>{{msg}}</div>
</template>
<script>
export default {
data() {
return {
msg: '我是子組件'
}
},
methods: {
changeMsg() {
this.msg = '變身'
}
}
}
</script>
<style lang="sass" scoped></style>
【2】父組件code:
<template>
<div @click="parentMethod">
<children ref="children"></children>
</div>
</template>
<script>
import children from 'components/children.vue'
export default {
components: {
children
},
data() {
return {}
},
methods: {
parentMethod() {
this.$refs.children //返回一個(gè)對(duì)象
this.$refs.children.changeMsg() // 調(diào)用children的changeMsg方法
}
}
}
</script>
<style lang="sass" scoped></style>
總結(jié)
到此這篇關(guān)于Vue中ref和$refs的介紹以及使用的文章就介紹到這了,更多相關(guān)Vue中ref和$refs使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Vue2.0中使用less給元素添加背景圖片出現(xiàn)的問題
今天小編就為大家分享一篇解決Vue2.0中使用less給元素添加背景圖片出現(xiàn)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
VUE2.0 ElementUI2.0表格el-table自適應(yīng)高度的實(shí)現(xiàn)方法
在開發(fā)中,需要表格控件根據(jù)瀏覽器高度進(jìn)行調(diào)整,固定表頭,本文主要介紹了VUE2.0 ElementUI2.0表格el-table自適應(yīng)高度的實(shí)現(xiàn)方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-11-11
vue?elementui?大文件進(jìn)度條下載功能實(shí)現(xiàn)
本文介紹了如何使用下載進(jìn)度條來展示下載進(jìn)度的方法,并展示了相關(guān)的效果圖,結(jié)合實(shí)例代碼介紹了vue?elementui?大文件進(jìn)度條下載的方法,感興趣的朋友一起看看吧2025-01-01
Vue3全局配置Axios并解決跨域請(qǐng)求問題示例詳解
axios 是一個(gè)基于promise的HTTP庫,支持promise所有的API,本文給大家介紹Vue3全局配置Axios并解決跨域請(qǐng)求問題,內(nèi)容從axios部署開始到解決跨域問題,感興趣的朋友一起看看吧2023-11-11
springboot?vue接口測(cè)試前端動(dòng)態(tài)增刪表單功能實(shí)現(xiàn)
這篇文章主要為大家介紹了springboot?vue接口測(cè)試前端動(dòng)態(tài)增刪表單功能實(shí)現(xiàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
Vue與.net?Core?接收List<T>泛型參數(shù)
這篇文章主要介紹了Vue與.net?Core?接收List<T>泛型參數(shù),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04
vue實(shí)現(xiàn)登錄后頁面跳轉(zhuǎn)到之前頁面
本文給大家分享了vue實(shí)現(xiàn)登錄后頁面跳轉(zhuǎn)到之前頁面的一個(gè)功能,有這方便需要的朋友學(xué)習(xí)參考下吧。2018-01-01

