您的位置:

使用Vue和Element UI创建令人印象深刻的管理面板

一、引言

随着互联网的普及和各种企业、组织的不断发展壮大,对于一个高效的管理系统变得越来越重要。如何快速开发一个高质量、美观、易用的管理后台,是每一个开发者都需要面对的问题。

Vue是一款极易上手的渐进式JavaScript框架,Element UI是一个轻量级组件库,二者的组合可以非常方便地实现一个高效的管理后台。本文将从如何创建Vue项目开始,逐步介绍如何使用Element UI快速搭建一个令人印象深刻的管理面板。

二、创建Vue项目

首先,我们需要创建一个Vue项目:

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'App'
};
</script>

以上代码是一个最简单的Vue应用,其中的<template>标签中包含一个用于路由显示的<router-view>标签,这里先不着重介绍路由的概念。接下来,我们需要在终端中执行以下命令:

npm install vue-cli -g
vue init webpack my-project
cd my-project
npm install

上述命令依次安装了Vue脚手架工具、使用webpack作为模板创建了一个名为my-project的Vue项目、进入到my-project目录并安装了项目所需的依赖包。

三、引入Element UI

接下来,我们需要添加Element UI到我们的项目中,以此来方便地使用其组件库,进而快速构建管理面板。为此,我们可以在项目根目录下执行以下命令:

npm i element-ui -S

然后在main.js中全局引入Element UI:

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)
})

以上代码引入了Element UI、使用Element UI的样式主题、引入了App.vue组件并将其渲染在页面上。

四、使用Element UI的组件

接下来,我们开始使用Element UI的组件,以方便地构建我们的管理面板。

(一)布局

首先,我们需要对页面进行布局。Element UI提供了一系列布局组件,如Container、Header、Main、Footer等。我们首先使用<el-container>包裹整个页面:

<template>
  <el-container>
    <el-header>Header</el-header>
    <el-main>Main</el-main>
    <el-footer>Footer</el-footer>
  </el-container>
</template>

以上代码将页面分为三个区域:页头Header、主要内容Main和页脚Footer。

(二)菜单

接下来,我们可以在Header中添加菜单来控制页面显示,具体实现如下:

<template>
  <el-container>
    <el-header>
      <el-menu mode="horizontal" background-color="#333">
        <el-menu-item index="1">Navigation One</el-menu-item>
        <el-menu-item index="2">Navigation Two</el-menu-item>
        <el-menu-item index="3">Navigation Three</el-menu-item>
      </el-menu>
    </el-header>
    <el-main>Main</el-main>
    <el-footer>Footer</el-footer>
  </el-container>
</template>

以上代码创建了一个水平方向的菜单,这里只是使用了三个示例项,具体可以根据需求进行替换。

(三)表格

接下来,我们可以在Main中使用Element UI的Table来展示数据,具体如下:

<template>
  <el-container>
    <el-header>
      <el-menu mode="horizontal" background-color="#333">
        <el-menu-item index="1">Navigation One</el-menu-item>
        <el-menu-item index="2">Navigation Two</el-menu-item>
        <el-menu-item index="3">Navigation Three</el-menu-item>
      </el-menu>
    </el-header>
    <el-main>
      <el-table :data="tableData">
        <el-table-column prop="date" label="日期"></el-table-column>
        <el-table-column prop="name" label="名称"></el-table-column>
        <el-table-column prop="address" label="地址"></el-table-column>
      </el-table>
    </el-main>
    <el-footer>Footer</el-footer>
  </el-container>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2021-01-01',
        name: 'John Doe',
        address: 'New York'
      }, {
        date: '2021-02-01',
        name: 'Jane Smith',
        address: 'Los Angeles'
      }, {
        date: '2021-03-01',
        name: 'Tom Brown',
        address: 'Chicago'
      }]
    }
  }
};
</script>

以上代码创建了一个简单的数据表格,其中使用了<el-table>标签定义表格,<el-table-column>标签定义表格的列,<:data>绑定了数据源,<prop>指定了数据源中的字段名称。

(四)对话框

在表格中,我们可以使用Element UI的Dialog组件来实现各种对话框,如新增、编辑、删除等操作。具体实现如下:

<template>
  <el-container>
    <el-header>
      <el-menu mode="horizontal" background-color="#333">
        <el-menu-item index="1">Navigation One</el-menu-item>
        <el-menu-item index="2">Navigation Two</el-menu-item>
        <el-menu-item index="3">Navigation Three</el-menu-item>
      </el-menu>
    </el-header>
    <el-main>
      <el-table :data="tableData">
        <el-table-column prop="date" label="日期"></el-table-column>
        <el-table-column prop="name" label="名称"></el-table-column>
        <el-table-column prop="address" label="地址"></el-table-column>
        <el-table-column fixed="right" label="操作">
          <template #default="{row}">
            <el-button type="primary" size="mini" @click="edit(row)">编辑</el-button>
            <el-button type="danger" size="mini" @click="del(row)">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <el-dialog :visible.sync="dialogVisible">
        <el-form ref="form" :model="form">
          <el-form-item label="名称">
            <el-input v-model="form.name"></el-input>
          </el-form-item>
          <el-form-item label="地址">
            <el-input v-model="form.address"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" @click="save">保存</el-button>
            <el-button @click="dialogVisible = false">取消</el-button>
          </el-form-item>
        </el-form>
      </el-dialog>
    </el-main>
    <el-footer>Footer</el-footer>
  </el-container>
</template>

<script>
export default {
  data() {
    return {
      tableData: [{
        date: '2021-01-01',
        name: 'John Doe',
        address: 'New York'
      }, {
        date: '2021-02-01',
        name: 'Jane Smith',
        address: 'Los Angeles'
      }, {
        date: '2021-03-01',
        name: 'Tom Brown',
        address: 'Chicago'
      }],
      dialogVisible: false,
      form: {
        name: '',
        address: ''
      }
    }
  },
  methods: {
    edit(row) {
      this.dialogVisible = true
      this.form = Object.assign({}, row)
    },
    save() {
      this.dialogVisible = false
      const index = this.tableData.findIndex(item => item.date === this.form.date)
      if (index !== -1) {
        this.tableData.splice(index, 1, Object.assign({}, this.form))
      } else {
        this.tableData.push(Object.assign({}, this.form))
      }
    },
    del(row) {
      this.tableData.splice(this.tableData.findIndex(item => item.date === row.date), 1)
    }
  }
};
</script>

以上代码在表格的右侧添加了两个操作按钮,一个是编辑按钮,一个是删除按钮。当用户点击编辑按钮时,将弹出一个对话框,其中包含了一个表单,用户可以在表单中修改数据,并且提交保存。具体来说,我们使用<el-dialog>组件定义对话框,使用<el-form>组件定义表单,使用<el-input>组件等来创建表单项。为了实现编辑操作,我们需要将表单数据与具体的数据行绑定,这里使用了Object.assign()方法来复制数据。

五、视图效果

经过以上步骤的构建,最终的管理面板如下图所示:

![管理面板](https://img-blog.csdnimg.cn/20220223125832713.gif)

六、总结

本文简单介绍了如何使用Vue和Element UI快速搭建一个令人印象深刻的管理面板。特别地,本文重点介绍了如何使用Element UI提供的组件,如Container、Header、Main、Footer、Table、Dialog等实现页面布局、数据展示和对话框等各种功能。通过学习本文,相信读者可以更快速、高效地开发各类管理系统。

使用Vue和Element UI创建令人印象深刻的管理面板

2023-05-16
使用Vue.js和Element UI创建下拉选项卡 - E

2023-05-17
印象笔记记录java学习(Java成长笔记)

2022-11-12
Element UI Admin:构建高质量后台管理系统的组

2023-05-20
vuejs源码学习笔记一(看懂vue源码)

本文目录一览: 1、深入浅出Vue.js--变化侦测 2、Vue学习系列一 —— MVVM响应式系统的基本实现原理 3、.vue文件怎么写js代码 4、认识Vue.js+Vue.js的优缺点+和与其他

2023-12-08
java学习笔记(java初学笔记)

2022-11-14
探究Element-UI官网

2023-05-18
关于extjs跟vue的信息

本文目录一览: 1、web前端开发需要天天加班熬夜吗? 2、做web前端开发都应该会些什么 3、关于后端程序员写前端用什么框架更好 4、VUEJS 和EXTJS,VUE能不能代替EXTJS来用呢 5、

2023-12-08
深度解析Element-ui前端框架

2023-05-20
Vue生态分析

2023-05-20
Vue快速构建页面

2023-05-20
python基础学习整理笔记,Python课堂笔记

2022-11-21
java基础知识学习笔记一,Java基础笔记

2022-11-21
详解Element-UI

2023-05-18
Idea使用Vue的全面解析

2023-05-18
Vue UI创建项目全面解析:从卡住不动到项目成功运行!

2023-05-18
重学java笔记,java笔记总结

2022-11-23
Vue项目管理器的详细阐述

2023-05-21
包含extjs值得入手吗的词条

本文目录一览: 1、web前端框架是做什么的? 2、ExtJS是什么,一位学长说的,对这个从未听说 3、Web前端工程师喜欢的高质量Web前端框架有哪些? 4、本人现在学习ExtJS,谁有ExtJS的

2023-12-08
python学习日记day4(大学python笔记整理)

2022-11-13