$parent指向调用该组件的直接组件(父组件)实例,

通过 $parent 获取到 父组件 中的 props 、 data或者方法,

比如table-body.vue单文件组件中有一个handleMouseIn方法,而table.vue单文件组件在<template>中调用了<table-body />组件

//table-body.vue,代码借鉴iview
handleMouseIn (_index) {
    //这时候this.$parent指向<table />父组件,并调用父组件的handleMouseIn()方法
    this.$parent.handleMouseIn(_index);
},
//table.vue中,代码借鉴ivew
<template>
    <table-body />
</template>

<script>
    import tableBody from './table-body.vue';

    const COMPONENT_NAME='table';

    export default {
        name:COMPONENT_NAME,
        components: { tableBody },
        methods: {
            //<table-body />父组件(table.vue中)中也有一个handleMouseIn方法
            handleMouseIn (_index) {
                if (this.disabledHover) return;
                if (this.objData[_index]._isHover) return;
                this.objData[_index]._isHover = true;
            }
        }
    }
</script>

然后通过 $parent层叠可以一层一层地往上追溯各级父组件,比如this.$parent.$patent.grandfatherDataKey

Logo

前往低代码交流专区

更多推荐