Javascript 嵌套/递归组件错误,未注册组件

Javascript 嵌套/递归组件错误,未注册组件,javascript,vue.js,nuxt.js,Javascript,Vue.js,Nuxt.js,我试图将组件本身与Nuxt.js组件一起使用,但在使用过程中出现以下错误: [Vue warn]:未知自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“name”选项 我的代码在components/MyComponent.vue <template> <div> <h1>{{ a.content }}</h1> <MyComponent :child="a.child" /> </

我试图将组件本身与Nuxt.js组件一起使用,但在使用过程中出现以下错误:

[Vue warn]:未知自定义元素:-您是否正确注册了组件?对于递归组件,请确保提供“name”选项

我的代码在
components/MyComponent.vue

<template>
<div>
    <h1>{{ a.content }}</h1>
    <MyComponent :child="a.child" />
</div>
</template>

<script>

export default {
    data() {
        return {
            a : {},
        }
    },
    mounted() {
        axios.get('/api/blah/')
        .then((res) =>
        {
            this.a = res.data;
        })
        .catch((err) =>
        {
            console.error(err);
        });
    }
}
</script>

{{a.content}}
导出默认值{
数据(){
返回{
a:{},
}
},
安装的(){
获取('/api/blah/'))
。然后((res)=>
{
此.a=资源数据;
})
.catch((错误)=>
{
控制台错误(err);
});
}
}

类似的代码使用vue.js处理原始的单页html页面,但不确定在这里使用之前如何命名组件。如何使其工作?

您应该为组件提供一个名称,以便递归地重用它,但您应该控制渲染以避免无限循环:

<template>
<div>
    <h1>{{ a.content }}</h1>
    <MyComponent :child="a.child" />
</div>
</template>

<script>

export default {
    name:"MyComponent",
    props:['child'],
    data() {
        return {
            a : {},
        }
    },
    mounted() {
        axios.get('/api/blah/')
        .then((res) =>
        {
            this.a = res.data;
        })
        .catch((err) =>
        {
            console.error(err);
        });
    }
}
</script>

{{a.content}}
导出默认值{
名称:“MyComponent”,
道具:[“孩子”],
数据(){
返回{
a:{},
}
},
安装的(){
获取('/api/blah/'))
。然后((res)=>
{
此.a=资源数据;
})
.catch((错误)=>
{
控制台错误(err);
});
}
}

为什么要在组件内部导入组件?以呈现嵌套的注释回复