美文网首页
vue - $root

vue - $root

作者: 女王陛下的喵 | 来源:发表于2018-09-18 11:40 被阅读689次

root 和parent 都能够实现访问父组件的属性的方法,两者的区别在于,如果存在多级子组件,通过$parent访问得到的是它最近一级的父组件,通过root访问得到的是根组件。

<script src="//unpkg.com/vue/dist/vue.js"></script>

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

var Main = {
    data() {
      return {
        msg: '我是父组件'
      }
   }
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')

在线运行

相关文章

网友评论

      本文标题:vue - $root

      本文链接:https://www.haomeiwen.com/subject/efxunftx.html