Element快速入门教程
1. 概念
- Element:是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库,用于快速构建网页
- 组件:组成网页的部件,例如:超链接、按钮、图片、表格……
2. 快速入门
- 引入Element的css、js文件 和 Vue.js
<script src="js/vue.js"></script>
<script src="element-ui/lib/index.js"></script>
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
- 创建Vue核心对象
<script>
new Vue({
el: "#app",
})
</script>
- 官网复制Element组件代码
- 示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>element</title>
</head>
<body>
<script src="js/vue.js"></script>
<script src="element-ui/lib/index.js"></script>
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<div id="app">
<el-row>
<el-button round>圆角按钮</el-button>
<el-button type="primary" round>主要按钮</el-button>
<el-button type="success" round>成功按钮</el-button>
<el-button type="info" round>信息按钮</el-button>
<el-button type="warning" round>警告按钮</el-button>
<el-button type="danger" round>危险按钮</el-button>
</el-row>
</div>
<script>
new Vue({
el: "#app",
})
</script>
</body>
</html>
3. Element 布局
- Element 中有两种布局方式:
-
Layout 布局:通过基础的 24 分栏,迅速简便地创建布局
-
Container布局容器:用于布局的容器组件,方便快速搭建页面的基本结构
-
4. Element 常用组件
- 通过官网寻找需要的组件进行复制粘贴
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>element</title>
<style>
.el-table .warning-row {
background: oldlace;
}
.el-table .success-row {
background: #f0f9eb;
}
</style>
</head>
<body>
<script src="js/vue.js"></script>
<script src="element-ui/lib/index.js"></script>
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
<div id="app">
<!--查询表单-->
<el-form :inline="true" :model="brand_search" class="demo-form-inline">
<el-form-item label="状态">
<el-select v-model="brand_search.status" placeholder="状态">
<el-option label="启用" value="1"></el-option>
<el-option label="禁用" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="品牌名称">
<el-input v-model="brand_search.brandName" placeholder="品牌名称"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand_search.companyName" placeholder="企业名称"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>
<!--删除和新增按钮-->
<el-row>
<el-button type="danger" plain>批量删除</el-button>
<el-button type="primary" plain @click="dialogVisible = true">新增</el-button>
</el-row>
<!--表格-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange">
<el-table-column
align="center"
type="selection"
width="55px">
</el-table-column>
<el-table-column
align="center"
type="index"
width="55px">
</el-table-column>
<el-table-column
prop="brandName"
align="center"
label="品牌名称">
</el-table-column>
<el-table-column
prop="companyName"
align="center"
label="公司名称">
</el-table-column>
<el-table-column
prop="description"
align="center"
label="品牌介绍">
</el-table-column>
<el-table-column
prop="ordered"
align="center"
label="排序">
</el-table-column>
<el-table-column
prop="status"
align="center"
label="状态">
</el-table-column>
<el-table-column
align="center"
label="当前操作"
>
<el-button type="primary">编辑</el-button>
<el-button type="danger">删除</el-button>
</el-table-column>
</el-table>
</template>
<!--新增数据对话框表单-->
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
>
<!--表单内容-->
<el-form ref="form" :model="brand" label-width="80px">
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName"></el-input>
</el-form-item>
<el-form-item label="企业名称">
<el-input v-model="brand.companyName"></el-input>
</el-form-item>
<el-form-item label="排序">
<el-input v-model="brand.ordered"></el-input>
</el-form-item>
<el-form-item label="描述信息">
<el-input type="textarea" v-model="brand.description"></el-input>
</el-form-item>
<el-form-item label="状态">
<el-switch v-model="brand.status"
active-value="1"
inactive-value="0">
</el-switch>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addBrand">新增</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</el-form-item>
</el-form>
</el-dialog>
<!--分页工具条-->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="400">
</el-pagination>
</div>
<script>
new Vue({
el: "#app",
methods: {
//分页工具方法
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
},
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
},
//多选数据处理方法
handleSelectionChange(val) {
this.multipleSelection = val;
},
//查询表单提交方法
onSubmit() {
console.log('submit!');
},
//新增数据
addBrand() {
console.log(this.brand);
}
},
data() {
return {
//分页工具数据
currentPage: 2,
//查询表单
brand_search: {
status: "",
companyName: "",
brandName: "",
},
//brand模型
brand: {
status: "",
companyName: "",
brandName: "",
id:"",
ordered: "",
description: ""
},
//表格数据
tableData: [{
"brandName": "三只松鼠",
"companyName": "三只松鼠股份有限公司",
"description": "好吃不上火 666",
"id": 1,
"ordered": 5,
"status": 0
}, {
"brandName": "华为",
"companyName": "华为技术有限公司",
"description": "华为致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界",
"id": 2,
"ordered": 100,
"status": 1
}, {
"brandName": "小米",
"companyName": "小米科技有限公司",
"description": "are you ok",
"id": 3,
"ordered": 50,
"status": 1
}, {
"brandName": "联想",
"companyName": "联想集团",
"description": "999",
"id": 4,
"ordered": 999,
"status": 1
}],
//复选框选中数据
multipleSelection: [],
//对话框展示
dialogVisible: false
}
}
})
</script>
</body>
</html>
声明: 本文内容整理自:黑马程序员新版JavaWeb基础教程,Java web从入门到企业实战完整版