Skip to content

Vue 快速开始 ​

这是最短、完整的 Vue 3 接入。先安装:

bash
pnpm add markstream-vue

然后在应用入口引入一次渲染器样式:

ts
// main.ts
import 'markstream-vue/index.css'

渲染 Markdown。下面的示例可以直接复制运行:

vue
<script setup lang="ts">
import MarkdownRender from 'markstream-vue'

const content = '# Hello World\n\n这是 **加粗** 的文本。'
</script>

<template>
  <MarkdownRender :content="content" />
</template>

流式渲染 AI 回复 ​

维护一个持续累加的字符串,并在流结束时设置 final。mode="chat" 已经选择了平滑输出、关闭 fade 等聊天默认值,不需要重复填写底层 props。

在 Vue 3(含 Nuxt)中,smooth-streaming 控制出字节奏,fade 控制透明度,两者可以同时开启。mode="chat" 保留 fade=false 作为轻量默认值;需要文字渐显时添加 fade,更看重动画成本时保持关闭。

vue
<script setup lang="ts">
import MarkdownRender from 'markstream-vue'
import { ref } from 'vue'

const content = ref('')
const isDone = ref(false)

function appendChunk(chunk: string) {
  content.value += chunk
}

function finishStream() {
  isDone.value = true
}
</script>

<template>
  <MarkdownRender
    mode="chat"
    :content="content"
    :final="isDone"
  />
</template>

每收到一个 SSE、WebSocket 或 LLM chunk 就调用 appendChunk(),流结束时调用一次 finishStream()。默认从 content 路径开始;只有 worker、store 或自定义 AST 管线已经接管解析时才使用预解析 nodes。

按需添加能力 ​

需求安装下一步
增强代码块和 diffpnpm add stream-diffs代码块
Mermaid 图表pnpm add mermaidMermaid
KaTeX 数学公式pnpm add katex数学公式
Nuxt SSR无额外依赖Nuxt SSR
Tailwind 或 UnoCSS无额外依赖Tailwind 与样式

普通 Markdown 本身支持 Nuxt SSR。只有初始化浏览器专属 peer 或 worker 的功能才需要 client-only 边界,不要默认包住整个渲染器。

接下来可阅读 AI 聊天与流式输出 获取完整接入流程,或阅读 使用与 API 了解 content、nodes 和高级集成。