elementui nuxtjs
ElementUI 与 Nuxt.js 集成指南
安装 ElementUI
在 Nuxt.js 项目中安装 ElementUI 依赖:
npm install element-ui -S
配置 Nuxt.js 插件
创建插件文件 plugins/element-ui.js,并添加以下内容:
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
在 nuxt.config.js 中注册插件:
export default {
plugins: [
{ src: '~/plugins/element-ui.js', mode: 'client' }
],
css: [
'element-ui/lib/theme-chalk/index.css'
]
}
按需引入优化
如果希望减少打包体积,可以配置按需引入:
安装 babel-plugin-component:

npm install babel-plugin-component -D
修改 nuxt.config.js 的 build 配置:
export default {
build: {
babel: {
plugins: [
[
'component',
{
libraryName: 'element-ui',
styleLibraryName: 'theme-chalk'
}
]
]
}
}
}
然后在 plugins/element-ui.js 中按需引入组件:
import Vue from 'vue'
import { Button, Select } from 'element-ui'
Vue.use(Button)
Vue.use(Select)
使用 ElementUI 组件
在 Nuxt.js 页面或组件中直接使用:

<template>
<div>
<el-button type="primary">按钮</el-button>
<el-select v-model="value" placeholder="请选择">
<el-option label="选项1" value="1"></el-option>
<el-option label="选项2" value="2"></el-option>
</el-select>
</div>
</template>
<script>
export default {
data() {
return {
value: ''
}
}
}
</script>
主题定制
如需修改默认主题,可通过以下方式覆盖变量:
创建 assets/element-variables.scss:
$--color-primary: #409EFF;
@import "~element-ui/packages/theme-chalk/src/index";
在 nuxt.config.js 中引入自定义样式:
export default {
css: [
'@/assets/element-variables.scss'
]
}
注意事项
- 由于 Nuxt.js 是服务端渲染框架,部分 ElementUI 组件(如
Dialog、Message)需在客户端使用,可通过v-if="process.client"或动态导入避免 SSR 报错。 - 如果遇到样式未加载问题,检查
nuxt.config.js的css配置是否正确引入 ElementUI 样式文件。






