Element UI 的安装和基本配置。
展示 Element UI 的安装和配置过程。
// 使用 npm 安装
npm install element-ui -S
// 在 main.js 中引入
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import App from './App.vue'
Vue.use(ElementUI)
new Vue({
  el: '#app',
  render: h => h(App)
})
// 按需引入
import { Button, Select } from 'element-ui'
Vue.use(Button)
Vue.use(Select)
// 全局配置
Vue.prototype.$ELEMENT = { 
    size: 'small', 
    zIndex: 3000 
}
// 主题定制
// 在 main.js 中引入自定义主题
import './theme/index.css'Element UI 的布局组件。
展示布局组件的使用。
<template>
  <el-container>
    <el-header>Header</el-header>
    <el-main>Main</el-main>
    <el-footer>Footer</el-footer>
  </el-container>
</template>
<style>
.el-header, .el-footer {
  background-color: #B3C0D1;
  color: #333;
  text-align: center;
  line-height: 60px;
}
.el-main {
  background-color: #E9EEF3;
  color: #333;
  text-align: center;
  line-height: 160px;
}
</style>Element UI 的基础表单组件。
展示基础表单组件的使用。
<template>
  <el-form :model="form" label-width="120px">
    <el-form-item label="活动名称">
      <el-input v-model="form.name"></el-input>
    </el-form-item>
    <el-form-item label="活动区域">
      <el-select v-model="form.region" placeholder="请选择活动区域">
        <el-option label="区域一" value="shanghai"></el-option>
        <el-option label="区域二" value="beijing"></el-option>
      </el-select>
    </el-form-item>
  </el-form>
</template>
<script>
// 组件数据和方法
const form = {
  name: '',
  region: ''
}
const methods = {
  onSubmit() {
    console.log('submit!', this.form)
  }
}
</script>Element UI 的表单验证功能。
展示表单验证的使用。
<template>
  <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
    <el-form-item label="活动名称" prop="name">
      <el-input v-model="ruleForm.name"></el-input>
    </el-form-item>
    <el-form-item label="活动区域" prop="region">
      <el-select v-model="ruleForm.region" placeholder="请选择活动区域">
        <el-option label="区域一" value="shanghai"></el-option>
        <el-option label="区域二" value="beijing"></el-option>
      </el-select>
    </el-form-item>
  </el-form>
</template>
<script>
// 表单数据和验证规则
const ruleForm = {
  name: '',
  region: ''
}
const rules = {
  name: [
    { required: true, message: '请输入活动名称', trigger: 'blur' },
    { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
  ],
  region: [
    { required: true, message: '请选择活动区域', trigger: 'change' }
  ]
}
const methods = {
  submitForm(formName) {
    this.$refs[formName].validate((valid) => {
      if (valid) {
        alert('submit!')
      } else {
        console.log('error submit!!')
        return false
      }
    })
  }
}
</script>Element UI 的表格组件。
展示表格组件的使用。
<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>
// 表格数据
const tableData = [{
  date: '2016-05-02',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1518 弄'
}, {
  date: '2016-05-04',
  name: '王小虎',
  address: '上海市普陀区金沙江路 1517 弄'
}]
</script>Element UI 的树形控件。
展示树形控件的使用。
<template>
  <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick"></el-tree>
</template>
<script>
// 树形数据
const data = [{
  label: '一级 1',
  children: [{
    label: '二级 1-1',
    children: [{
      label: '三级 1-1-1'
    }]
  }]
}, {
  label: '一级 2',
  children: [{
    label: '二级 2-1',
    children: [{
      label: '三级 2-1-1'
    }]
  }]
}]
const defaultProps = {
  children: 'children',
  label: 'label'
}
const methods = {
  handleNodeClick(data) {
    console.log(data)
  }
}
</script>Element UI 的菜单组件。
展示菜单组件的使用。
<template>
  <el-menu
    default-active="2"
    class="el-menu-vertical-demo"
    @open="handleOpen"
    @close="handleClose">
    <el-submenu index="1">
      <template slot="title">
        <i class="el-icon-location"></i>
        <span>导航一</span>
      </template>
      <el-menu-item-group>
        <template slot="title">分组一</template>
        <el-menu-item index="1-1">选项1</el-menu-item>
        <el-menu-item index="1-2">选项2</el-menu-item>
      </el-menu-item-group>
    </el-submenu>
    <el-menu-item index="2">
      <i class="el-icon-menu"></i>
      <span slot="title">导航二</span>
    </el-menu-item>
  </el-menu>
</template>
<script>
const methods = {
  handleOpen(key, keyPath) {
    console.log(key, keyPath)
  },
  handleClose(key, keyPath) {
    console.log(key, keyPath)
  }
}
</script>Element UI 的标签页组件。
展示标签页组件的使用。
<template>
  <el-tabs v-model="activeName" @tab-click="handleClick">
    <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
    <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
    <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
  </el-tabs>
</template>
<script>
const data = {
  activeName: 'first'
}
const methods = {
  handleClick(tab, event) {
    console.log(tab, event)
  }
}
</script>Element UI 的对话框组件。
展示对话框组件的使用。
<template>
  <el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button>
  <el-dialog
    title="提示"
    :visible.sync="dialogVisible"
    width="30%"
    :before-close="handleClose">
    <span>这是一段信息</span>
    <span slot="footer" class="dialog-footer">
      <el-button @click="dialogVisible = false">取 消</el-button>
      <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
    </span>
  </el-dialog>
</template>
<script>
const data = {
  dialogVisible: false
}
const methods = {
  handleClose(done) {
    this.$confirm('确认关闭?')
      .then(_ => {
        done()
      })
      .catch(_ => {})
  }
}
</script>Element UI 的消息提示组件。
展示消息提示组件的使用。
<template>
  <el-button :plain="true" @click="open">打开消息提示</el-button>
  <el-button :plain="true" @click="open2">成功</el-button>
  <el-button :plain="true" @click="open3">警告</el-button>
  <el-button :plain="true" @click="open4">错误</el-button>
</template>
<script>
const methods = {
  open() {
    this.$message('这是一条消息提示')
  },
  open2() {
    this.$message({
      message: '恭喜你,这是一条成功消息',
      type: 'success'
    })
  },
  open3() {
    this.$message({
      message: '警告哦,这是一条警告消息',
      type: 'warning'
    })
  },
  open4() {
    this.$message.error('错了哦,这是一条错误消息')
  }
}
</script>建议按照章节顺序学习,每完成一个练习后再进行下一个。可以通过创建实际项目来实践所学知识。