在 Nuxt 中使用
通过 Nuxt module 自动注册全部组件
安装
配置
在 nuxt.config.ts 中添加模块:
Nuxt module 会自动:
- 注册全部组件(支持前缀)
- 注入
style.css(可通过injectStyles: false关闭) - 注入运行时插件(客户端初始化语言与主题)
使用
配置后直接在模板中使用组件,无需手动 import:
组件前缀
如果与项目中已有的组件重名,可通过 prefix 添加前缀:
已有 Tailwind 的项目
如果项目已有 Tailwind CSS(如 shadcn-docs-nuxt),设置 injectStyles: false 避免 reset 冲突:
ConfigProvider
在 app.vue 中包裹 ConfigProvider 统一配置:
SSR 兼容性
ReUI 组件默认做了服务端渲染守卫,可直接在 Nuxt SSR 中使用,无需额外配置。
需要浏览器能力的组件
以下组件依赖 DOM / 浏览器 API,在服务端会渲染为占位或空壳,客户端挂载后自动激活(水合):
Cropper、SlideCaptcha、QRCode、AudioPlayer、VideoPlayerEditor(Tiptap)、Tour、Affix、BackTop、Watermark、MasonryGrid
这些组件无需手动处理,SSR 阶段不会崩溃,交互在客户端生效。
命令式 API 仅客户端调用
Modal.info / success / error / warning / confirm、useNotification、useToast 等命令式 API 会创建 DOM 节点,只能在客户端调用(事件回调、onMounted 等),不要在 setup 顶层或服务端逻辑中直接调用:
纯客户端渲染
若某个区域只应在浏览器中渲染(例如依赖 localStorage 或第三方浏览器 SDK),可用 Nuxt 的 <ClientOnly> 包裹:
TypeScript
ReUI 提供完整的类型定义,Nuxt module 会自动配置类型推断,无需额外配置。
