咨询热线:15911225507
龙霄
登录
首页-所有文章-Nuxt.js英文,Vue.js英文-正文

Naive UI Integration & UnoCSS Atomic CSS in Nuxt 4

龙霄龙霄
Nuxt.js英文, Vue.js英文
9天前
0
0
3.52K
A practical guide to integrating Naive UI with UnoCSS in Nuxt 4, covering automatic imports, SSR style collection, Vite build optimization, and code-splitting strategies to achieve zero manual imports and on-demand loading for an exceptional developer experience.
A practical guide to integrating Naive UI with UnoCSS in a large-scale Nuxt 4 production project

1. Why Naive UI + UnoCSS?

DimensionNaive UIUnoCSS
RoleEnterprise Vue 3 component libraryOn-demand atomic CSS engine
Bundle SizeTree-shakingZero runtime
TypeScriptNative TSType-safe presets
ThemingLight/dark themesShares Naive UI variables
SSR@css-render/vue3-ssrInline CSS, zero overhead

2. Naive UI Auto-Import

plugins: [
    AutoImport({
        imports: [{
            'naive-ui': ['createDiscreteApi', 'useOsTheme', 'useMessage', 'useDialog',
                'lightTheme', 'darkTheme', 'zhCN', 'zhTW', 'dateZhCN', 'dateZhTW']
        }]
    }),
    Components({ resolvers: [NaiveUiResolver()] })
]
{ "dependencies": { "@css-render/vue3-ssr": "^0.15.14" } }
build: { transpile: ['naive-ui', 'vueuc', 'radash'] }

Global Discrete API Injection

const { message, dialog } = createDiscreteApi(['message', 'dialog'])
;(globalThis as any).__salongMessage = message

3. UnoCSS Architecture

unocss: { nuxtLayers: true }

CSS division of labor:

  • Naive UI theme variables → custom.scss
  • Global layout/reset → main.scss
  • Component styling → UnoCSS atomic classes

4. Vite Optimization

vite: {
    optimizeDeps: { include: ['naive-ui', 'vueuc', 'dayjs', 'dompurify', ...] },
    build: {
        minify: 'esbuild', cssMinify: true, assetsInlineLimit: 4096,
        rollupOptions: {
            output: {
                manualChunks(id) {
                    if (id.includes('node_modules/@vue-office')) {
                        const pkg = id.match(/@vue-office\\/([^/]+)/)?.[1]
                        return pkg ? `vue-office-${pkg}` : 'vue-office'
                    }
                }
            }
        }
    }
}

5. Summary

  1. Zero manual imports: AutoImport + NaiveUiResolver
  2. Unified theming: Naive UI variables → UnoCSS shortcuts → SCSS overrides
  3. SSR-friendly: @css-render/vue3-ssr + esbuild minification
标签:
本文原创,作者:龙霄,其版权均为龙霄所有。如需转载,请注明出处:https://lx.yfdxs.com/1429.html
龙霄

龙霄

Lv1Vip2Rec2
以 Nuxt.js 之力,焕新 WordPress 体验
121.93M3413.92W1W
加载中…
分享:
1
Pinia 状态持久化与内存治理实践
Pinia 状态持久化与内存治理实践上一篇
Nuxt 4 中 Naive UI 集成与 UnoCSS 原子化样式实战下一篇
Nuxt 4 中 Naive UI 集成与 UnoCSS 原子化样式实战
相关文章
总数:0
龙霄
没有相关内容
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:2
  • 大理旅行
    大理旅行
    务必保证年底前完成专项治理整改任务
  • 大理旅行
    大理旅行
    根据整改情况实时更新,实行整改台账销号制度,并及时向社会公布,自觉接受群众监督