VUE實例中的父組件可以通過“this.$parent”來訪問。
new Vue({ el: '#app', data: { message: 'Hello Vue.js!' }, methods: { sayHello: function () { console.log('parent message is ' + this.message); } } })
在上面的代碼中,“sayHello”方法輸出了“message”的值。這個值是在Vue.js實例中定義的。在任何時候,我們都可以通過“this”引用當前上下文中的Vue.js實例。
如果這個Vue.js實例是作為另一個Vue.js組件的子組件創(chuàng)建的,我們可以使用“this.$parent”來訪問父組件的實例。
Vue.component('child-component', { template: 'Child Component', mounted: function () { console.log(this.$parent.message); this.$parent.sayHello(); } })
在上面的代碼中,“mounted”鉤子函數(shù)輸出了父組件的“message”值并調(diào)用了“sayHello”方法。
需要注意的是,“this.$parent”只能訪問直接父組件的Vue.js實例。
在嵌套組件的情況下,我們可以使用“this.$parent.$parent”來訪問更高層次的父組件的實例。
Vue.component('grand-child-component', { template: 'Grand Child Component', mounted: function () { console.log(this.$parent.$parent.message); this.$parent.$parent.sayHello(); } })
在上面的代碼中,“mounted”鉤子函數(shù)輸出了祖父組件的“message”值并調(diào)用了“sayHello”方法。
需要注意的是,使用“this.$parent.$parent”來訪問父組件可能會導致組件的耦合度增加,因此應該盡可能避免這種做法。