Vue2极简教程003:Element UI组件库完整使用指南

一、Element UI简介

Element UI是饿了么团队推出的基于Vue 2.0的桌面端组件库,提供丰富的预制组件,特别适合后台管理系统开发。

官方资源

二、安装与引入

方式1:npm安装(推荐)

npm install element-ui -S

方式2:CDN引入(快速原型开发)

<!-- 在public/index.html中引入 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/theme-chalk/index.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.15.7/index.min.js"></script>

三、完整引入与按需引入

1. 完整引入(适合小型项目)

// main.js
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

2. 按需引入(推荐,减小体积)

# 首先安装babel插件
npm install babel-plugin-component -D
// babel.config.js
module.exports = {
  plugins: [
    [
      "component",
      {
        "libraryName": "element-ui",
        "styleLibraryName": "theme-chalk"
      }
    ]
  ]
}
// 按需引入示例(在需要的组件中)
import { Button, Select } from 'element-ui'

export default {
  components: {
    ElButton: Button,
    ElSelect: Select
  }
}

四、核心组件使用示例

1. 表单组件

<template>
  <el-form :model="form" label-width="80px">
    <el-form-item label="用户名">
      <el-input v-model="form.name"></el-input>
    </el-form-item>
    <el-form-item label="密码">
      <el-input type="password" v-model="form.password"></el-input>
    </el-form-item>
    <el-form-item>
      <el-button type="primary" @click="submit">登录</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
export default {
  data() {
    return {
      form: {
        name: '',
        password: ''
      }
    }
  },
  methods: {
    submit() {
      this.$message.success('提交成功')
    }
  }
}
</script>

2. 表格组件

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2023-07-15',
        name: '张三',
        address: '北京市'
      }, {
        date: '2023-07-16',
        name: '李四',
        address: '上海市'
      }]
    }
  }
}
</script>

五、主题定制

1. 在线主题生成器

使用官方主题工具自定义颜色后下载配置文件

2. SCSS变量覆盖

/* 在assets/css/element-variables.scss中 */
$--color-primary: #42b983;
$--font-path: '~element-ui/lib/theme-chalk/fonts';

@import "~element-ui/packages/theme-chalk/src/index";
// main.js中引入
import './assets/css/element-variables.scss'

六、实用技巧

1. 全局配置

// 设置全局尺寸和zIndex
Vue.use(ElementUI, { 
  size: 'small', 
  zIndex: 3000 
})

2. 消息提示封装

// utils/message.js
import { Message } from 'element-ui'

export function showSuccess(msg) {
  Message.success(msg)
}

export function showError(msg) {
  Message.error(msg)
}

3. 表单验证

<el-form :rules="rules">
  <el-form-item prop="email" :rules="rules.email">
    <el-input v-model="form.email"></el-input>
  </el-form-item>
</el-form>

<script>
export default {
  data() {
    return {
      rules: {
        email: [
          { required: true, message: '请输入邮箱', trigger: 'blur' },
          { type: 'email', message: '邮箱格式不正确', trigger: 'blur' }
        ]
      }
    }
  }
}
</script>

七、常见问题解决

1. 样式不生效

  • 确保CSS文件正确引入
  • 检查样式被其他CSS覆盖(可尝试增加scoped)

2. 图标显示异常

# 单独安装图标库
npm install @element-ui/icons -S
import { ElIcon } from 'element-plus'
import '@element-plus/icons'

3. 国际化配置

import Vue from 'vue'
import ElementUI from 'element-ui'
import locale from 'element-ui/lib/locale/lang/en'

Vue.use(ElementUI, { locale })

八、性能优化建议

  1. 按需加载:使用babel-plugin-component减少打包体积
  2. CDN引入:非核心页面可切换CDN方式
  3. 组件懒加载:配合Vue异步组件使用
  4. 版本锁定:在package.json中固定版本号

最佳实践:将常用组件封装成业务组件库,如:

<!-- components/MyDialog.vue -->
<template>
  <el-dialog :visible.sync="visible" v-bind="$attrs">
    <slot></slot>
    <template #footer>
      <slot name="footer"></slot>
    </template>
  </el-dialog>
</template>

通过Element UI可以快速构建出专业的中后台系统界面,建议结合官方文档的组件API进行深度定制开发。

添加新评论