Vue3组合式API中<component>组件解析失败警告,求解决方案
解决Vue3中「无法解析组件:component」的警告
你代码里的<component>标签使用错误——Vue的<component>是动态组件容器,必须通过:is属性指定要渲染的组件或原生元素,否则Vue会将其视为一个名为component的普通组件去查找,找不到就抛出该警告。
你的场景中,这个<component>属于多余的包裹标签,直接移除即可解决警告,修改后的代码如下:
<script setup> import { defineProps } from "vue"; const props = defineProps({ hrefLink: { type: String, required: true, default: "#" }, }); </script> <template> <a class="hover:text-gray-400" :href="hrefLink"><slot /></a> </template>
如果你的实际需求是动态切换渲染的元素(比如在原生<a>和Vue Router的<router-link>之间切换),则需要正确使用动态组件的:is属性,示例代码如下:
<script setup> import { defineProps } from "vue"; import { RouterLink } from 'vue-router'; const props = defineProps({ hrefLink: { type: String, required: true, default: "#" }, isRouterLink: { type: Boolean, default: false } }); </script> <template> <component :is="isRouterLink ? RouterLink : 'a'" :href="!isRouterLink ? hrefLink : undefined" :to="isRouterLink ? hrefLink : undefined" class="hover:text-gray-400" > <slot /> </component> </template>
内容的提问来源于stack exchange,提问作者Riki krismawan
相关产品推荐
相关产品推荐

