1.element基本使用

官网:(https://element.eleme.cn/#/zh-CN)

1.1安装

在项目中晚装elementUI

npm i element-ui -S

在main.js中引入并注册

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)

1.2使用

1.2.1table组件使用

<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 弄'}]}}
}
</script>

属性

lable:决定当前列显示出的标题

prop:决定数据是那个属性

:data:数据源

table组件-自定义插槽

我们需要在对应的列中,使用template标签包裹我们自定义渲染的内容

<el-table-column label="操作" width="100"><template><el-button size="small" type="danger">删除</el-button></template>
</el-table-column>

table组件-自定义列-作用域插槽

后端返回的数据中,只有一个指代性别的编码,为了方便用户查看,需要我们把1转换成男,0转换成女。

解决办法:

<el-table-column label="性别"><!-- 1. slot-scope是固定写法2. scope理解为变量,并不一定需要固定这个名字,el-table-column组件会自动将渲染本行需要的数据传给scope,其中scope.row就表示当前行的数据,它对应数据源中的某个对象。这里的row是固定写法3. {{ 方法() }} 的作用是执行这个方法,将返回值显示在当前单元格中--><template slot-scope="scope">{{ transGender(scope.row.gender) }}</template>
</el-table-column><script>export default {methods: {transGender(genderCode) {console.log(genderCode)const genderList = {1: '男',0: '女'}return genderList[genderCode]}}}
</script>

1.2.2 Pagination翻页组件

属性:

layout:布局

tatal : 用来设置数据的总条数

@current-change:分页事件

page-size:默认每页10条数据

翻页事件

<template><div><h1>Pagination</h1><el-paginationlayout="prev, pager, next":total="1000"@current-change="pageChange"></el-pagination></div>
</template><script>
export default {methods: {// 把当前点击的页数给传进来pageChange(page) {console.log(page)}}
}
</script>

1.2.3 From表单组件-表单验证

步骤1-定义表单验证规则

rules: {// 字段名1:表示要验证的属性// 值: 表示验证规则列表。它是一个数组,数组中的每一项表示一条规则。//     数组中的多条规则会按顺序进行字段名1: [{ 验证规则1 },{ 验证规则2 },],字段名2: [{ 验证规则1 },{ 验证规则2 },],
}

步骤2-模板中的配置

  1. 给 el-form 组件绑定 model 为表单数据对象
  2. 给 el-form 组件绑定 rules 属性配置验证规则
  3. 给需要验证的表单项 el-form-item 绑定 prop 属性,注意:prop 属性需要指定表单对象中的数据名称

代码:

<el-form label-width="80px" :model="form" :rules="rules"><el-form-item label="手机号" prop="mobile"><el-input v-model="form.mobile"></el-input></el-form-item><el-form-item label="密码" prop="code"><el-input v-model="form.code"></el-input></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">立即创建</el-button><el-button @click="onCancel">取消</el-button></el-form-item>
</el-form>

步骤3-手动兜底验证

element-ui的表单组件.validate(valid => {if(valid) {// 通过了验证} else {// 验证失败}
})

说明:

  • validate 方法是表单组件自带的,用来对表单内容进行检验。
  • 需要在模板中添加对表单组件的引用:ref 的作用主要用来获取表单组件手动触发验证

代码-模板

<el-form label-width="80px"
+  ref="form":model="form":rules="rules">

添加ref来引用el-form组件

代码:

doLogin () {alert('我可以做登录了')
},
submit () {this.$refs.form.validate(valid => {// valid 就是表单验证的结果,如果是true,表示通过了// console.log(valid)if (valid) {// 通过了验证,你可以做后续动作了this.doLogin()}})
}

注意

下面三个地方的属性名必须一样

表单验证-自定义校验规则

rules:{属性名1: [{ // 注意参数顺序validator: function (rule, value, callback) {// rule:采用的规则// value: 被校验的值// callback是回调函数, //      如果通过了规则检验,就直接调用callback()//      如果没有通过规则检验,就调用callback(错误对象,在错误对象中说明原因)//         例如:callback(new Error('错误说明'))}, trigger: 'blur' }]
}

落地代码

rules: {name: [{required: true, message:'必须要填入', triggle: 'blur'}],code: [{validator:(rule, value, callback)=>{console.log(rule, value, callback)if(value === '123456') {callback(new Error('这是世界上最差的密码了'))} else {callback()}},triggle: 'blur'},{min: 6, max:8, message:'长度为6-8位', triggle: 'blur'},{required: true, message:'必须要填入', triggle: 'blur'},]
}

Form表单组件-清理校验痕迹

this.$refs.form组件的引用.resetFields()

1.2.4 Tree组件基础使用

<template><el-tree :data="data"></el-tree>
</template><script>
export default {data() {return {data: [{label: '一级 1',children: [{label: '二级 1-1',children: [{label: '三级 1-1-1'}]}]}, {label: '一级 2',children: [{label: '二级 2-1',children: [{label: '三级 2-1-1'}]}, {label: '二级 2-2',children: [{label: '三级 2-2-1'}]}]}, {label: '一级 3',children: [{label: '二级 3-1',children: [{label: '三级 3-1-1'}]}, {label: '二级 3-2',children: [{label: '三级 3-2-1'}]}]}]}}
}
</script>

1.2.5 Dialog弹窗组件

<template><div><el-button type="text" @click="dialogVisible = true">点击打开 Dialog</el-button><el-dialogtitle="提示":visible.sync="dialogVisible"width="30%"><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></div>
</template><script>export default {data() {return {dialogVisible: false}}}
</script>

1.2.6 监听open和close事件

弹框组件有俩种状态,一个是打开一个是关闭,如果我们想在它打开或者关闭时做一些自己的事情,就可以监听俩个事件

@close 弹框关闭 : dialogVisible从true变成false

@open 弹框打开 : dialogVisible从false变成true

element-UI的基本使用以及部分组件的使用相关推荐

  1. 修改element UI的select下拉框组件右边的小箭头(使用自定义图片)

    i.el-select__caret {/*很关键:将默认的select选择框样式清除*/ appearance:none;-moz-appearance:none;-webkit-appearanc ...

  2. 【RuoYi-Vue-Plus 实现日期范围查询 Mybatis-Plus Element UI JavaScript 】

    Element UI 实现日期范围查询,多个日期范围查询. 文章目录 Element UI 实现日期范围查询,多个日期范围查询. 前言 一.前端Element - UI(DatePicker 日期选择 ...

  3. Element UI 分页器

    人是为活着本身而活着,而不是为了活着之外的任何事物所活着.-- 余华<活着> 安装 Element UI npm i element-ui -S 引入组件 import { Paginat ...

  4. Element UI——滚动条组件(ElScrollBar)修改.el-scrollbar__wrap和el-scrollbar__view的CSS属性

    基本概念 el-scrollbar:Element UI隐藏组件. 注意事项: 1.el-scrollbar的父层要有固定高度 2.el-scrollbar的高度要设成100% 3.如果出现横滚动条, ...

  5. Element UI table组件源码分析

    本文章从如下图所示的最基本的table入手,分析table组件源代码.本人已经对table组件原来的源码进行削减,源码点击这里下载.本文只对重要的代码片段进行讲解,推荐下载代码把项目运行起来,跟着文章 ...

  6. element ui table组件扩展关于列表编辑按钮的位置放置

    最近在用vue做项目,主要是用的element ui的组件,在用的过程中发现有部分组件需要扩展,改源码太折腾,成本高,就想着如何节省成本来实现这些需求,由于项目时间紧张,有些实现来也没来得及记录一下, ...

  7. 实战 | Element UI 父子组件传值与事件绑定(逆向)

    这是小小本周的第四篇,本篇将会倒过来讲解Element UI 父子组件传值与事件绑定. 父子组件传值 新建父组件和子组件 新建父组件 代码如下 <template><div id=& ...

  8. 实战 | Element UI 父子组件传值与事件绑定(正向)

    这是小小的本周的第三篇,本篇将会讲解关于Element UI 父子组件传值与事件绑定. 父子组件传值 新建父组件和子组件 新建父组件 代码如下 <template><div id=& ...

  9. 关于Element UI中select组件中遇到的问题

    问题一:在使用select组件设置多选功能后,窗口抖动问题? 详细描述:在我使用select做多选的功能时出现了窗口抖动的问题,测试的时候发现,在有些人的电脑上抖动,有些人的电脑上不抖,找了很多文档, ...

  10. 从Element ui看开发公共组件的三种方式

    在日常的开发工作中,封装自己的公共组件是很常见的需求,但想要组件更加优雅和通用也是一门学问.恰好前段时间用过Element ui,于是想学习这种库是如何封装插件的,这篇文章就是我的一点理解. 从入口文 ...

最新文章

  1. 使用计算机视觉算法检测钢板中的焊接缺陷
  2. beaglebone black 联网
  3. jpg图片使用pil的resize后_如何使用PIL调整图像大小并保持其纵横比?
  4. QWidget::size()和QResizeEvent::size()不一定相同!
  5. 如何构建尽可能小的容器镜像?
  6. BZOJ 2738: 矩阵乘法 [整体二分]
  7. 全新开始fighting
  8. IAR软件ZigBee物联网
  9. Android屏幕、坐标系、Padding、Margin
  10. Avalondock 第四步 边缘停靠
  11. 数据哪里找?200个源数据网站全给你!
  12. 一元四次方程欧拉解法的证明
  13. table总结insertRow、deleteRow
  14. redhat 6.5安装oracle时出现java异常_Redhat6.2安装Oracle11g客户端及遇到的问题分析
  15. 基于Android的校园图书共享app
  16. 苏宁并购家乐福是零售市场必然走向
  17. 几何基础 罗德里格公式
  18. java弹力球游戏_小班弹力球游戏教案
  19. CentOS 7 找回root密码
  20. 电源设计1【测试方法、LDO】

热门文章

  1. openDrive 和 OSM的区别
  2. .zip文件解压、压缩
  3. 浅谈软件测试的兼容性和易用性测试
  4. 054_er_xiang_yi_tu_sou_tu
  5. 敏实集团IPO被终止:曾拟募资65亿 秦荣华曾遭法院处罚
  6. r语言读取csv文件encoding乱码问题
  7. GJB 5000B简介
  8. 1-【先导片】给年轻人的跨学科通识课-360P 流畅-AVC
  9. creo螺纹的基础画法
  10. eclipse svn 使用(代码合并)