Skip to content

Next.js 流式 Markdown 渲染器

markstream-react 在 Next.js 中有三种常见入口:实时 SSE/WebSocket 区域用 root markstream-react 放在 'use client' 组件里;需要服务器先输出 HTML 再增强时用 markstream-react/next;完全 server-only 的 Markdown 预览用 markstream-react/server

tsx
// app/components/ChatMessage.tsx
'use client'

import MarkdownRender from 'markstream-react'

export function ChatMessage({ content, isDone }: { content: string, isDone: boolean }) {
  return <MarkdownRender content={content} final={isDone} fade={false} />
}
tsx
// app/page.tsx
import MarkdownRender from 'markstream-react/next'
import 'markstream-react/index.css'

export default function Page() {
  return <MarkdownRender content="# Server HTML first" final />
}
入口用途
markstream-reactclient component 中的实时流式输出
markstream-react/nextSSR-first 页面,服务端 HTML + 客户端增强
markstream-react/server不需要客户端增强的 server-only 渲染

不要把 Next.js 简化成“只能 client-only”。只有 live streaming surface 必须在客户端;稳定内容和服务端预览可以走 SSR-first 或 server-only。