如何解决"Failed to resolve: component at App.vue"



我通过参考此视频了解Vue3的组件。

在这段视频中,大约6点37分,当导师创建header.vue并编辑App.vue时,测试网站上显示了header。我写了同样的代码,但得到了一个错误,什么都没有显示。

如有任何帮助,我们将不胜感激。

错误消息

[Vue warn]: Failed to resolve component: Header 
at <App>
runtime-core.esm-bundler.js?5c40:38

代码

[App.vue]

<template>
<Header />
</template>
<script>
import Header from './components/Header.vue';
export default {
setup() {
return {
Header
}
}
}
</script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Fira Sans', sans-serif;
}
body {
background: #EEE;
}
</style>

[Header.vue]

<template>
<h1>Income Tracker</h1>
<div class="total-income">¥0</div>
</template>
<script>
export default {

}
</script>
<style scoped>
header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15px 30px;
background-color: #313131;
border-bottom: 5px solid #FFCE00;
}
header h1 {
color: #EEE;
font-size: 28px;
}
header .total-income {
font-family: 'Fira Code', 'Fira Sans', sans-serif;
background-color: #FFCE00;
color: #FFF;
font-size: 20px;
font-weight: 900;
padding: 5px 10px;
min-width: 100px;
text-align: center;
border-radius: 8px;
box-shadow: inset 0px 0px 6px rgba(0, 0, 0, 0.25);
text-shadow: 0px 3px 3px rgba(0, 0, 0, 0.25);
}
</style>

Header组件未在App.vue中正确注册。我相信您正在尝试从setup()进行本地组件注册,但目前不支持。

使用components选项在App.vue:中本地注册Header

import Header from './components/Header.vue';
export default {
components: {
Header
},
setup() {
// DON'T DO THIS
//return {
//  Header
//}
}
}

演示

您需要将子元素包装在Header组件的单亲元素中。

<template>
<div>
<h1>Income Tracker</h1>
<div class="total-income">¥0</div>
</div>
</template>

你需要在App.vue中包含你的头组件,试试这个

<template>
<Header />
</template>
<script>
import Header from './components/Header.vue';
export default {
components: {
Header,
},
}
</script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Fira Sans', sans-serif;
}
body {
background: #EEE;
}
</style>

相关内容

  • 没有找到相关文章

最新更新