VitePress 中如何正确引入自定义 Vue 组件?
我在 VitePress 项目里想用自己写的 Vue 组件,但总是报错说组件未注册。明明已经按文档在 .vitepress/components 里放了组件,也重启了 dev server,还是不行。
比如我写了个简单的按钮组件,代码是这样的:
<template>
<button class="my-btn">{{ text }}</button>
</template>
<script setup>
defineProps({ text: String })
</script>
<style scoped>
.my-btn { padding: 8px 16px; background: #409eff; color: white; border: none; }
</style>
然后在 Markdown 里直接写 <MyButton text="测试" /> 就报错,说 Unknown custom element。是不是还要手动注册?文档里没说清楚啊……
首先确认你的组件文件名必须是大驼峰命名,比如
MyButton.vue,放在.vitepress/components目录下。这是VitePress自动注册的默认位置。如果还不行,手动注册最保险。在
.vitepress/theme/index.js里这样写:另外检查下组件引用时的标签名是否匹配,
必须和注册时的名称完全一致,包括大小写。最后记得清理下
node_modules/.vite缓存,有时候热更新会抽风。我上次折腾半天发现是缓存问题,删了就好了。