【发布时间】:2020-09-25 22:51:00
【问题描述】:
我目前遇到的问题是我的 Vue 组件没有按照我的预期呈现。
我将尝试澄清我的意思,因为我意识到它很模糊:
目前我有一个 Vue 组件,我使用它来渲染:
if (document.querySelector('.dishes')) {
Vue.component(
'DishesList',
require('../components/DishesList').default
);
new Vue({
el: '#dishes',
});
}
这确实有效,因为正在加载此组件中指定的内容。加载它产生的 HTML 是:
<div class="dishes">
<div id="dishes">
<div data-v-xxxxxx>
.....
</div>
</div>
</div>
但这不是我所期望的。每当我以前使用过 Vue 时,HTML 中显示的组件仍然是这样的:
<div class="dishes">
<div id="dishes">
<dishes-list></dishes-list>
</div>
</div>
dishes-list 组件是这样的(我过滤掉了一些东西):
<template>
.....
</template>
<script>
import Dish from "./Dish";
export default {
name: "DishesList",
props: ["categories"],
data: function () {
return {
search:'',
order: {}
}
},
components: {
Dish,
},
methods: {
},
mounted() {
},
computed: {
}
}
</script>
<style lang="scss" scoped>
.category {
margin: 20px 0;
}
</style>
这也会导致 Vue 开发工具无法看到我的 dishes-list 组件。唯一被识别的是组件<root>,其中没有任何内容。我的问题是:是什么导致 Vue 将组件加载为 <div data-v-xxxx> 而不是我之前见过的 <dishes-list>?
希望这一切都有意义。如果我可以做任何事情来澄清这个问题,请告诉我,因为我对 Stackoverflow 还是很陌生,我正在努力做到最好。我对 Vue 也很陌生,所以如果你知道答案,请记住这一点。
【问题讨论】:
-
您可以粘贴您的 DishesList 组件的一部分吗?
<dishes-list>不是有效的 HTML 标记(除非您使用 WebComponents,这不是 Vue 默认发生的事情)。您的组件可能呈现为<div>。 -
我添加了关于菜组件的一些信息,我删除了 html,但我不确定是否也应该包含其中的一些信息?
标签: vue.js vue-component