[英]How to solve "Failed to resolve: component at App.vue"
I'm learning about components of Vue3 by referring to this video .我正在参考这个视频学习 Vue3 的组件。
Around 6:37 in this video, header displayed on the test site when the tutor created Header.vue and edited App.vue.在这个视频的6:37左右,导师在创建Header.vue和编辑App.vue时,测试站点显示的header。 I wrote same code but get an error and nothing in displayed.
我写了相同的代码,但出现错误并且没有显示任何内容。
Any help would be appreciated.任何帮助,将不胜感激。
Error message错误信息
[Vue warn]: Failed to resolve component: Header
at <App>
runtime-core.esm-bundler.js?5c40:38
Code代码
[App.vue] [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] [标题.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>
The Header
component is not properly registered in App.vue
. Header
组件未在App.vue
中正确注册。 I believe you were trying local component registration from setup()
, but that's currently not supported.我相信您正在尝试从
setup()
进行本地组件注册,但目前不支持。
Use the components
option to locally register Header
in App.vue
:使用
components
选项在App.vue
中本地注册Header
:
import Header from './components/Header.vue';
export default {
components: {
Header
},
setup() {
// DON'T DO THIS
//return {
// Header
//}
}
}
You need to include your header component in the App.vue, try this您需要在 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>
You need to wrap child elements inside the single parent element of Header component.您需要将子元素包装在 Header 组件的单个父元素中。
<template>
<div>
<h1>Income Tracker</h1>
<div class="total-income">¥0</div>
</div>
</template>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.