詳解Vue的ref特性的使用
阿新 • • 發佈:2020-01-28
一、ref的基本使用
ref
的使用
<!-- `vm.$refs.p`將會是DOM結點 --> <p ref="p">hello</p> <!-- `vm.$refs.child`將會是子元件例項 --> <child-component ref="child"></child-component>
如果在普通的 DOM 元素上使用,引用指向的就是DOM 元素如果用在子元件上,引用就指向元件例項
深入理解$refs
某元件的$refs
含有該元件的所有ref
,看下面的例子
<div id="app"> <p ref="p">hello</p> <child-component ref="child"></child-component> </div> <script> Vue.component('child-component',{ template: '<h1>child-component </h1>' }) let vm = new Vue({ el: '#app' }) </script>
從上圖中我們很容易發現
vm.$refs
返回了一個物件,這個物件內有兩個成員,包含了vm例項的所有ref
vm.$refs.p
是DOM 元素
vm.$refs.child
是元件例項
二、實戰:通過ref獲取子元件data
看下面的例子
<div id="app"> <counter ref="child1" @change="handleChange"></counter> <counter ref="child2" @change="handleChange"></counter> <div>{{sum}}</div> </div> <script> // counter元件,實現每點選一次,自增1 Vue.component('counter',{ template: '<h3 @click="handleClick">{{count}}</h3>',data() { return { count: 0 } },methods: { handleClick() { this.count += 1; this.$emit('change') } } }) let vm = new Vue({ el: '#app',data: { sum: 0 },methods: { handleChange() { this.sum = this.$refs.child1.count + this.$refs.child2.count // 使用refs獲取子元件的資料 } } }) </script>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。