elementui nuxt
ElementUI 与 Nuxt.js 集成指南
ElementUI 是一套基于 Vue.js 的桌面端组件库,而 Nuxt.js 是一个基于 Vue.js 的通用应用框架。将两者结合可以快速构建现代化的 SSR(服务端渲染)应用。
安装 ElementUI
在 Nuxt.js 项目中安装 ElementUI 及其依赖:
npm install element-ui @nuxtjs/axios
配置 Nuxt.js
在 nuxt.config.js 中添加 ElementUI 和 axios 模块:
export default {
modules: [
'@nuxtjs/axios',
],
plugins: [
{ src: '~/plugins/element-ui', ssr: true }
],
css: [
'element-ui/lib/theme-chalk/index.css'
],
axios: {
// Axios 配置
}
}
创建 ElementUI 插件
在 plugins 目录下创建 element-ui.js 文件:

import Vue from 'vue'
import ElementUI from 'element-ui'
Vue.use(ElementUI)
按需引入组件
如需优化打包体积,可以配置按需引入:
import { Button, Select } from 'element-ui'
Vue.use(Button)
Vue.use(Select)
主题定制
创建 assets/element-variables.scss 文件:
$--color-primary: #409EFF;
@import "~element-ui/packages/theme-chalk/src/index";
然后在 nuxt.config.js 中替换 CSS 引入:

css: [
'@/assets/element-variables.scss'
]
使用组件
在页面或组件中直接使用 ElementUI 组件:
<template>
<el-button type="primary">按钮</el-button>
</template>
SSR 注意事项
某些 ElementUI 组件依赖浏览器 API,需要在客户端渲染:
if (process.client) {
const { Carousel } = require('element-ui')
Vue.use(Carousel)
}
国际化配置
如需多语言支持:
import Vue from 'vue'
import ElementUI from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'
Vue.use(ElementUI, { locale })
最佳实践
- 避免在服务端渲染时使用依赖 DOM 的组件
- 按需引入以减少打包体积
- 通过 SCSS 变量覆盖实现主题定制
- 考虑使用 babel-plugin-component 优化按需引入






