简体   繁体   English

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

[英]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
    //}
  }
}

demo 演示

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM