vue - $root

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')

在线运行

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,082评论 19 139
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,875评论 0 10
  • 恋爱是人世间最让人黯然神伤的事,因为许多时候,恋爱并不会有美好的结局。俩人一拍即合,即便以爱的名义交往下去,甚至缔...
    京南孟公子阅读 343评论 0 0
  • 梦见路遇D叔,我很高兴,问叔能合影吗? D叔脸色一变转身就跑,我赶紧大喊不愿意合影就算了,干嘛要跑? 回应我的只有...
    大不里奇阅读 182评论 0 0
  • 第三章 澹台寺 林冲无家,行江湖,后至一家酒店。吃了些酒,吃了些好肉,正饮酒间,见一大汉,推着一乘,到店门...
    9986丶BH阅读 670评论 0 8