在Nuxt3项目中引入Arco Design。以下是详细步骤:
-
首先安装必要的依赖:
# 安装 Arco Design Vue
npm install @arco-design/web-vue
# 如果需要使用图标,还需要安装图标包
npm install @arco-design/web-vue/es/icon
-
在项目根目录创建 plugins
文件夹(如果没有的话),然后创建arco.ts
文件:
// plugins/arco.ts
import { defineNuxtPlugin } from '#app'
import ArcoVue from '@arco-design/web-vue'
import '@arco-design/web-vue/dist/arco.css'
// 如果需要使用图标
import ArcoVueIcon from '@arco-design/web-vue/es/icon'
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(ArcoVue)
// 如果需要使用图标
nuxtApp.vueApp.use(ArcoVueIcon)
})
-
配置 nuxt.config.ts
:
// nuxt.config.ts
export default defineNuxtConfig({
css: [
'@arco-design/web-vue/dist/arco.css'
],
// 如果需要按需导入
build: {
transpile: ['@arco-design/web-vue']
}
})
-
如果你想要使用按需导入来减小打包体积,需要额外安装并配置:
npm install -D unplugin-vue-components
然后在 nuxt.config.ts
中添加配置:
// nuxt.config.ts
import Components from 'unplugin-vue-components/vite'
import { ArcoResolver } from 'unplugin-vue-components/resolvers'
export default defineNuxtConfig({
// ...其他配置
vite: {
plugins: [
Components({
resolvers: [
ArcoResolver({
sideEffect: true
})
]
})
]
}
})
-
使用示例:
<template>
<div>
<a-button type="primary">Arco Button</a-button>
<a-input placeholder="Please input" />
</div>
</template>
<script setup lang="ts">
// 不需要手动导入组件,已经自动导入了
</script>
-
如果需要自定义主题,可以创建一个 CSS 文件:
/* assets/style/arco-theme.css */
:root {
--primary-6: #165DFF; /* 主色 */
--success-6: #00B42A; /* 成功色 */
--warning-6: #FF7D00; /* 警告色 */
--danger-6: #F53F3F; /* 危险色 */
}
然后在 nuxt.config.ts
中引入:
export default defineNuxtConfig({
css: [
'@arco-design/web-vue/dist/arco.css',
'~/assets/style/arco-theme.css'
]
})
注意事项:
-
确保你的 Nuxt3 项目已经正确设置了 TypeScript。
-
如果遇到类型错误,可以在
tsconfig.json
中添加:
{
"compilerOptions": {
"types": [
"@arco-design/web-vue/es/type"
]
}
}
-
如果使用 SSR,某些组件可能需要特殊处理,可以使用 client-only
标签:
<template>
<client-only>
<a-date-picker />
</client-only>
</template>
-
如果需要在全局使用 Arco Design 的配置,可以在插件中设置:
// plugins/arco.ts
import { defineNuxtPlugin } from '#app'
import { Message } from '@arco-design/web-vue'
export default defineNuxtPlugin(() => {
// 配置全局属性
Message.config({
duration: 2000,
maxCount: 3
})
})
这样就完成了 Arco Design 在 Nuxt3 中的基本配置。你可以开始使用 Arco Design 的组件来构建你的应用了。