vitepress中如何使用vue组件、语法

817 阅读2分钟

vitepress中使用vue

上一章vitepress中MarkDown扩展 - 掘金 (juejin.cn)

原理:在 VitePress 中,每个 Markdown 文件都被编译成 HTML,而且将其作为 Vue 单文件组件处理。

理解:

vitepress中的markdown文件会被当成vue组件处理

也就是说可以把markdown文件当成vue文件使用

也可以存在script标签和style标签和templete标签等

用法案例

<script setup lang="ts">
import {ref} from 'vue';
const count = ref(0);
</script>

<templete>
<div>templete模板</div>
{{count}}
</templete>
<style module>

</style>

效果:

templete模板
{{count}}

vue中嵌套markdown语法

<script setup lang="ts">
import {ref} from 'vue';
const count = ref(0);
</script>

<templete>
<div>templete模板</div>
{{count}}
</templete>

> [!NOTE] 提示
> 强调用户在快速浏览文档时也不应忽略的重要信息。

<style module>

</style>

效果:

templete模板
{{count}}

[!NOTE] 提示 强调用户在快速浏览文档时也不应忽略的重要信息。

使用外部vue组件文件

外部vue文件

<!-- docs/views/helloView.vue -->
<script setup lang="ts">

</script>
<template>
    <div>
        内部组件文件
    </div>
</template>

使用外部vue组件:

<script setup lang="ts">
import {ref} from 'vue';
import helloView from './views/helloView';
</script>
<templete>
    <div>templete模板</div>
    <helloView></helloView>
</templete>
<style>

</style>

效果:

templete模板

[!TIP] 结论 由此可见,在vitepress中使用vue语法没有任何问题,并且可以利用一些vue的特性,让文档更加的简洁

注意:

由于一个vue文件中只能存在一个script标签,所以虽然我上面写了很多,但其实并不是,我只是在md文件中的上面写了一个script,里面包含了需要的内容,然后在下面使用的地方并没有再次去写script标签

例如:

<script setup lang="ts">
import {ref} from 'vue';
import helloView from '/views/helloView.vue';
const count = ref(0);
</script>
<!-- 第一个模板 -->
<templete>
<div>templete模板</div>
{{count}}
</templete>

<style module>

</style>
<!-- 第二个模板 -->
<templete>
<div>templete模板</div>
{{count}}
</templete>

> [!NOTE] 提示
> 强调用户在快速浏览文档时也不应忽略的重要信息。

<style module>

</style>
<!-- ... -->

如果不这样写,就会出现报错提示

[!CAUTION] [vitepress] Internal server error: Single file component can contain only one <script setup> element

就是只允许出现一个<script setup>标签