浅谈Vue render函数在ElementUi中的应用


Posted in Javascript onSeptember 06, 2018

vue的render函数在日常开发中被广泛应用,今天以ElementUI中的table表头重构为引,实际应用一下借助render函数实现表头搜索,不足之处请多多指教!

首先引入官方demo

<el-table :data="tableData" style="width: 100%" :border="true">
 <el-table-column prop="date" label="日期" min-width="20%" align="center">
 </el-table-column>
 <el-table-column prop="name" label="姓名" min-width="60%" align="center">
 </el-table-column>
 <el-table-column prop="address" label="地址" align="center">
 </el-table-column>
</el-table>

实现效果

浅谈Vue render函数在ElementUi中的应用

之后为姓名列添加 :render-header=”renderHeader” 绑定render函数

<el-table-column :render-header="renderHeader" prop="name" label="姓名" min-width="60%" align="center" >
</el-table-column>

在methods中实现renderHeader方法

methods: {
 renderHeader (createElement) {
  let self = this
  return createElement('div', {
  domProps: {
   innerHTML: `
    <span class="span">姓名</span>
    <input type="text" class="input">
    `
  },
  style: {
   padding: '0',
   lineHeight: '1',
   marginTop: '5px',
   width: '100%'
  },
  on: {
   '!click': function (e) {
   let span = document.getElementsByClassName('span')[0]
   let input = document.getElementsByClassName('input')[0]
   span.style.display = 'none'
   input.style.display = 'inline-block'
   input.focus()
   event.stopPropagation()
   }
  }
  })
 }
 },

在less文件中配合实现DOM的展示和隐藏

.span {
  display: inline-block;
}
.input {
  display: none;
}

此时已经可以实现点击表头出现输入框

浅谈Vue render函数在ElementUi中的应用

之后需要为其绑定input事件

on: {
 '!click': function (e) {
 let span = document.getElementsByClassName('span')[0]
 let input = document.getElementsByClassName('input')[0]
 span.style.display = 'none'
 input.style.display = 'inline-block'
 input.focus()
 event.stopPropagation()
 },
 input: function (event) {
  self.inputValue = event.target.value // 在data中定义inputValue
 }
}

之后我们就可以监听data中的inputValue,实现一些列业务逻辑

watch: {
 inputValue: function () {
  console.log(this.inputValue)
 }
 }

以上这篇浅谈Vue render函数在ElementUi中的应用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
图片格式的JavaScript和CSS速查手册
Aug 20 Javascript
jQuery EasyUI API 中文文档 搜索框
Sep 29 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
Oct 29 Javascript
不同js异步函数同步的实现方法
May 28 Javascript
利用node.js如何创建子进程详解
Dec 09 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
Sep 05 Javascript
Vue动态加载异步组件的方法
Nov 21 Javascript
在vue-cli中引入lodash.js并使用详解
Nov 13 Javascript
H5实现手机拍照和选择上传功能
Dec 18 Javascript
JS数据类型STRING使用实例解析
Dec 18 Javascript
vue+vant实现购物车全选和反选功能
Nov 17 Vue.js
解决vue同一slot在组件中渲染多次的问题
Sep 06 #Javascript
vue template中slot-scope/scope的使用方法
Sep 06 #Javascript
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
Sep 06 #Javascript
jQuery实现鼠标移入移出事件切换功能示例
Sep 06 #jQuery
Vue下拉框回显并默认选中随机问题
Sep 06 #Javascript
vue兄弟组件传递数据的实例
Sep 06 #Javascript
webpack4简单入门实例
Sep 06 #Javascript
You might like
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
PHP入门教程之会话控制技巧(cookie与session)
2016/09/11 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
JS中toFixed()方法引起的问题如何解决
2012/11/20 Javascript
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
JavaScript针对网页节点的增删改查用法实例
2015/02/02 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
Python内置函数OCT详解
2016/11/09 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
python数据类型强制转换实例详解
2020/06/22 Python
关键字throw与throws的用法差异
2016/11/22 面试题
元旦标语大全
2014/10/09 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
Python Numpy库的超详细教程
2022/04/06 Python
Vue Element plus使用方法梳理
2022/12/24 Vue.js