Vue.js - 为什么我的父组件在子组件安装之前安装?

Mar*_*zzo 5 vue.js vue-component nuxt.js

我正在使用 Nuxt 版本2.15.7和 Vue 2.6.14。我的理解是,子组件是在父组件安装之前安装的,如本答案中所述

然而,在我的项目中,我遇到了相反的情况:

家长.vue

<template>
    <div class="parent">
        <MessageCard ref="messageCard"></MessageCard>
    </div>
</template>

<script>
export default {
    mounted() {
        console.log("Parent Mounted");
        console.log(this.$refs.messageCard); // undefined
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)

消息卡.vue

<template>
    <div class="messageCard">Hello</div>
</template>

<script>
    export default {
        mounted() {
            console.log("Child mounted");
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

我的控制台上的输出显示:

Parent mounted
undefined
Child mounted
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

根据vue 论坛 子组件不应该在父组件之前安装吗?我需要对孩子调用方法,但它是undefined. 我什至尝试过this.$nextTick(),却发现相同的结果。我了解我链接的资源分别来自 2018 年和 2017 年……这种行为在过去 4 年里有变化吗?