elementui nuxtjs
集成 Element UI 与 Nuxt.js
Element UI 是一个基于 Vue.js 的组件库,而 Nuxt.js 是一个基于 Vue.js 的框架,用于构建服务端渲染(SSR)或静态站点。以下是集成两者的方法。
安装 Element UI 和 Nuxt.js
确保已创建 Nuxt.js 项目。若未创建,可通过以下命令初始化:
npx create-nuxt-app <project-name>
进入项目目录后,安装 Element UI:
npm install element-ui
配置 Nuxt.js 使用 Element UI
在 nuxt.config.js 中配置 Element UI 作为插件。添加以下内容:
module.exports = {
plugins: [
{ src: '~/plugins/element-ui', ssr: true }
],
css: [
'element-ui/lib/theme-chalk/index.css'
]
}
创建 Element UI 插件文件
在 plugins 目录下创建 element-ui.js 文件,内容如下:
import Vue from 'vue'
import ElementUI from 'element-ui'
Vue.use(ElementUI)
使用 Element UI 组件
在页面或组件中直接使用 Element UI 的组件,例如:
<template>
<el-button type="primary">按钮</el-button>
</template>
按需引入 Element UI 组件
若希望减小打包体积,可按需引入组件。
安装 babel-plugin-component
运行以下命令安装插件:
npm install babel-plugin-component -D
配置 Babel
在 nuxt.config.js 中配置 Babel:
module.exports = {
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)
主题定制
Element UI 支持自定义主题。以下是步骤。
安装主题工具
运行以下命令:
npm install element-theme -g
npm install element-theme-chalk -D
初始化主题变量
在项目根目录执行:
et -i
修改变量文件
编辑生成的 element-variables.scss,修改需要的变量。

编译主题
运行以下命令生成自定义主题:
et
更新 Nuxt.js 配置
在 nuxt.config.js 中更新 CSS 路径:
css: [
'~/assets/theme/index.css'
]
解决 SSR 兼容性问题
某些 Element UI 组件在 SSR 环境下可能存在问题,需额外处理。
禁用 SSR 的组件
在插件文件中对特定组件禁用 SSR:
import Vue from 'vue'
import { Carousel } from 'element-ui'
if (process.client) {
Vue.use(Carousel)
}
使用动态导入
对于仅在客户端使用的组件,可采用动态导入:
<template>
<client-only>
<el-carousel>
<!-- 内容 -->
</el-carousel>
</client-only>
</template>






