Vue $root、$parent、$refs


 

Vue處理邊界root、parent、$refs

下面的功能都是有風險的,盡量避免使用

Vue 子組件可以通過 $root 屬性訪問父組件實例的屬性和方法

<div id="app"> <root-obj></root-obj> </div> Vue.component('root-obj', { data() { return { } }, template: `<div> <button @click='getRoot'>$Root</button> </div>`, methods: { getRoot() { console.log(this) console.log(this.$root) } } }) var app = new Vue({ el: '#app', data: { msg: 'Root' } }) 

root 和parent 的區別

root 和parent 都能夠實現訪問父組件的屬性和方法,兩者的區別在於,如果存在多級子組件,通過parent 訪問得到的是它最近一級的父組件,通過root 訪問得到的是根父組件

<div id="app"> <root-obj></root-obj> </div> Vue.component('root-obj', { data() { return { } }, template: `<div> <button @click='getRoot'>子組件</button> <child-component></child-component> </div>`, methods: { getRoot() { console.log(this) console.log(this.$root) console.log(this.$parent) } } }) Vue.component('child-component', { data() { return { } }, template: `<div> <button @click='getRoot'>子子組件</button> </div>`, methods: { getRoot() { console.log(this) console.log(this.$root) console.log(this.$parent) } } }) var app = new Vue({ el: '#app', data: { msg: 'Root' } }) 

$refs 訪問子組件實例

通過在子組件標簽定義 ref 屬性,在父組件中可以使用$refs 訪問子組件實例

<button @click='refView'>通過ref訪問子組件</button> Vue.component('base-input', { data() { return { msg: 'base-input' } }, template: `<input type='text'/>` }) var app = new Vue({ el: '#app', data: { msg: 'Root' }, methods: { refView() { console.log(this.$refs.baseInput) this.$refs.baseInput.$el.focus() } } })


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM