Vue 3 问题导入/解析组件
Vue 3 issues importing / resolving component
嗨,Vue 新手,正在通过教程学习。我创建了一个组件 Header.vue 并尝试将其导入 App.vue。
这是结构:
code structure
这里是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>
<div>
<h1>Income Tracker</h1>
<div class="total-income">[=11=]</div>
</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>
我正在从 App.vue 获取样式,但组件未解析。在控制台中,我收到此错误:
error message
我试过的是堆栈溢出和google根据错误消息文本进行搜索。
我没有正确搜索,或者我目前没有足够的经验来确定导致此问题的原因。
非常感谢有关如何解决此问题的教育。
您需要使用这样的组件
<template>
<header />
</template>
<script>
import Header from "./components/Header.vue";
export default {
components: {
"header": Header
},
setup() {
return {
Header,
};
},
};
</script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Fira Sans", sans-serif;
}
body {
background: #eee;
}
</style>
您需要在components
选项中注册组件。
export default {
components: {
Header,
},
};
见the docs。
请注意,在 JavaScript 对象(例如 Header
)中包含无值条目是 Header: Header
.
的 ES6 语法
在你的 Header.vue 中用 header 标签替换你的 div 标签,因为你在 CSS 而不是 [=15] 中设置 header 标签的样式=] 标签。
<template>
<header>
<h1>Income Tracker</h1>
<div class="total-income">[=10=]</div>
</header>
</template>
嗨,Vue 新手,正在通过教程学习。我创建了一个组件 Header.vue 并尝试将其导入 App.vue。 这是结构: code structure
这里是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>
<div>
<h1>Income Tracker</h1>
<div class="total-income">[=11=]</div>
</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>
我正在从 App.vue 获取样式,但组件未解析。在控制台中,我收到此错误: error message
我试过的是堆栈溢出和google根据错误消息文本进行搜索。
我没有正确搜索,或者我目前没有足够的经验来确定导致此问题的原因。
非常感谢有关如何解决此问题的教育。
您需要使用这样的组件
<template>
<header />
</template>
<script>
import Header from "./components/Header.vue";
export default {
components: {
"header": Header
},
setup() {
return {
Header,
};
},
};
</script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Fira Sans", sans-serif;
}
body {
background: #eee;
}
</style>
您需要在components
选项中注册组件。
export default {
components: {
Header,
},
};
见the docs。
请注意,在 JavaScript 对象(例如 Header
)中包含无值条目是 Header: Header
.
在你的 Header.vue 中用 header 标签替换你的 div 标签,因为你在 CSS 而不是 [=15] 中设置 header 标签的样式=] 标签。
<template>
<header>
<h1>Income Tracker</h1>
<div class="total-income">[=10=]</div>
</header>
</template>