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

Nuxt 4 中 Naive UI 整合與 UnoCSS 原子化樣式實戰

Nuxt.js繁体, Vue.js繁体
9天前
0
0
4.61K
本文詳解如何在 Nuxt 4 專案中高效整合 Naive UI 元件庫與 UnoCSS 原子化 CSS 引擎,涵蓋自動匯入設定、SSR 樣式收集、Vite 建置最佳化和分包策略,實現零手動引入、按需載入的極致開發體驗。
在大型 Nuxt 4 專案中,如何高效整合 Naive UI 元件庫,並與 UnoCSS 原子化 CSS 引擎協同工作?

一、為什麼選擇 Naive UI + UnoCSS?

維度Naive UIUnoCSS
定位企業級 Vue 3 元件庫按需原子化 CSS 引擎
體積Tree-shaking 按需載入零執行時
TypeScript原生 TypeScript 編寫規則預設型別安全
主題內建亮色/暗色主題與 Naive UI 主題變數互通

二、Naive UI 自動匯入

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'] }

離散 API 全域注入

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

三、UnoCSS 架構

unocss: { nuxtLayers: true }

分工:

  • Naive UI 主題變數 → custom.scss
  • 全域佈局/重置 → main.scss
  • 元件級樣式 → UnoCSS 原子類

四、Vite 最佳化

vite: {
    optimizeDeps: { include: ['naive-ui', 'vueuc', 'dayjs', ...] },
    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'
                    }
                }
            }
        }
    }
}

五、總結

  1. 零手動匯入:AutoImport + NaiveUiResolver
  2. 主題體系:Naive UI 變數 → UnoCSS shortcuts → SCSS 覆蓋
  3. SSR 友好:@css-render/vue3-ssr + esbuild 壓縮
标签:
本文原创,作者:,其版权均为龙霄所有。如需转载,请注明出处:https://lx.yfdxs.com/1430.html
加载中…
分享:
1
Pinia 状态持久化与内存治理实践
Pinia 状态持久化与内存治理实践上一篇
Nuxt 4 中 Naive UI 集成与 UnoCSS 原子化样式实战下一篇
Nuxt 4 中 Naive UI 集成与 UnoCSS 原子化样式实战
相关文章
总数:0
龙霄
没有相关内容
评论表单游客 您好,欢迎参与讨论。
加载中…
评论列表
总数:0
龙霄
没有相关内容