• 前端框架Vue学习 ——(六)Vue组件库Element



    Element 介绍

    Element:是饿了么团队研发的,一套为开发者、 设计师和产品经理准备的基于Vue 2.0的桌面端组件库。
    组件:组成网页的部件,例如超链接、按钮、图片、表格、表单、分页条等等。
    官网: https://element.eleme.cn/#/zh-CNListener

    快速入门

    • 安装 ElementUI 组件库(在当前工程的目录下),在命令执行指令:
    npm install element-ui@2.15.3
    
    • 1
    • 引入 ElementUI 组件库(官网有)

    在这里插入图片描述
    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)
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 访问官网复制组件代码,调整(比如按钮)

    views/element/ElementView.vue

    <template>
      <div>
        <el-row>
          <el-button>默认按钮el-button>
          <el-button type="primary">主要按钮el-button>
          <el-button type="success">成功按钮el-button>
          <el-button type="info">信息按钮el-button>
          <el-button type="warning">警告按钮el-button>
          <el-button type="danger">危险按钮el-button>
        el-row>
      div>
    template>
    <script>
    export default {
      name: "ElementView"
    }
    script>
    <style scoped>
    
    style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    App.vue 中导入上述组件

    <template>
      <div id="app">
        <ElementView>ElementView>
      div>
    template>
    
    <style>
    style>
    <script setup>
    import ElementView from "@/views/element/ElementView.vue";
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    显示效果

    在这里插入图片描述

    常见组件

    表格

    在这里插入图片描述

    每一个组件对应的属性,在组件底部都有说明。

    在这里插入图片描述

    <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: '2016-05-02',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1518 弄'
              }, {
                date: '2016-05-04',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1517 弄'
              }, {
                date: '2016-05-01',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1519 弄'
              }, {
                date: '2016-05-03',
                name: '王小虎',
                address: '上海市普陀区金沙江路 1516 弄'
              }]
            }
          }
        }
      script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46

    在这里插入图片描述

    分页

    <el-pagination
        background
        layout="sizes, prev, pager, next, jumper, total"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :total="1000">
    el-pagination>
    <script>
    export default {
    	methods: {
    	    handleSizeChange: function (val) {
    	      alert("每页记录数变化" + val)
    	    },
    	    handleCurrentChange: function (val) {
    	      alert("页码发生变化" + val)
    	    }
    	}
    }
     script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    在这里插入图片描述

    layout 与下面组件的对应关系
    在这里插入图片描述
    在这里插入图片描述
    size-change 和 current-change 事件来处理页码大小和当前页变动时候触发的事件。

    Dialog 对话框组件

    在这里插入图片描述

    
    <el-button type="text" @click="dialogTableVisible = true">打开嵌套表格的 Dialogel-button>
    
    <el-dialog title="收货地址" :visible.sync="dialogTableVisible">
      <el-table :data="gridData">
        <el-table-column property="date" label="日期" width="150">el-table-column>
        <el-table-column property="name" label="姓名" width="200">el-table-column>
        <el-table-column property="address" label="地址">el-table-column>
      el-table>
    el-dialog>
    
    
    <el-button type="text" @click="dialogFormVisible = true">打开嵌套表单的 Dialogel-button>
    
    <el-dialog title="收货地址" :visible.sync="dialogFormVisible">
      <el-form :model="form">
        <el-form-item label="活动名称" :label-width="formLabelWidth">
          <el-input v-model="form.name" autocomplete="off">el-input>
        el-form-item>
        <el-form-item label="活动区域" :label-width="formLabelWidth">
          <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>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消el-button>
        <el-button type="primary" @click="dialogFormVisible = false">确 定el-button>
      div>
    el-dialog>
    
    <script>
      export default {
        data() {
          return {
            gridData: [{
              date: '2016-05-02',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄'
            }, {
              date: '2016-05-04',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄'
            }, {
              date: '2016-05-01',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄'
            }, {
              date: '2016-05-03',
              name: '王小虎',
              address: '上海市普陀区金沙江路 1518 弄'
            }],
            dialogTableVisible: false,
            dialogFormVisible: false,
            form: {
              name: '',
              region: '',
              date1: '',
              date2: '',
              delivery: false,
              type: [],
              resource: '',
              desc: ''
            },
            formLabelWidth: '120px'
          };
        }
      };
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70

    表单

    在这里插入图片描述

    
    <el-button type="text" @click="dialogFormVisible = true">打开嵌套form表单的 Dialogel-button>
    
    <el-dialog title="Form表单" :visible.sync="dialogFormVisible" width="800px">
      <el-form ref="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-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-item label="活动时间">
          <el-col :span="11">
            <el-date-picker type="date" placeholder="选择日期" v-model="form.date1" style="width: 100%;">el-date-picker>
          el-col>
          <el-col class="line" :span="2">-el-col>
          <el-col :span="11">
            <el-time-picker placeholder="选择时间" v-model="form.date2" style="width: 100%;">el-time-picker>
          el-col>
        el-form-item>
        <el-form-item>
          <el-button type="primary" @click="onSubmit">立即创建el-button>
          <el-button>取消el-button>
        el-form-item>
      el-form>
    el-dialog>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    <script>
    export default {
      name: "ElementView",
      data() {
        return {
          form: {
             name: '',
             region: '',
             date1: '',
             date2: ''
           },
          dialogFormVisible: false
        }
     },
     methods: {
        onSubmit: function () {
          alert(JSON.stringify(this.form));
        }
      }
    }
    script>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    Container 布局容器

    Container 布局容器可以实现如下类似的页面效果:

    在这里插入图片描述

  • 相关阅读:
    面霸的自我修养:JMM与锁的理论
    【Mysql系列】03_系统设计
    机器学习python实践——关于ward聚类分层算法的一些个人心得
    剪切字符串函数
    设计模式学习笔记 - 适配器模式
    黑马Java笔记第二讲—java基础
    Java Arrays工具类
    【附源码】Python计算机毕业设计纳雍县梦金园珠宝店管理系统
    9步打造个人ip
    多角度分析!解决Android手机无法连接Wi-Fi的方法指南!
  • 原文地址:https://blog.csdn.net/qq_46456049/article/details/134232438