浅谈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 相关文章推荐
jquery $.each()使用探讨
Sep 23 Javascript
JS动态修改iframe高度和宽度的方法
Apr 01 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
Jun 15 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
浅析BootStrap栅格系统
Jun 07 Javascript
详解node.js搭建代理服务器请求数据
Apr 08 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
Vue框架之goods组件开发详解
Jan 25 Javascript
vue初尝试--项目结构(推荐)
Jan 30 Javascript
react 兄弟组件如何调用对方的方法示例
Oct 23 Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
Apr 06 Javascript
解决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
一个ubbcode的函数,速度很快.
2006/10/09 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
javascript 节点排序 2
2011/01/31 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
vue2.0 keep-alive最佳实践
2017/07/06 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
解决js ajax同步请求造成浏览器假死的问题
2018/01/18 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
[03:09]显微镜下的DOTA2第一期——带你走进华丽的DOTA2世界
2014/06/20 DOTA
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
python数组过滤实现方法
2015/07/27 Python
Python实现的基数排序算法原理与用法实例分析
2017/11/23 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
对python3新增的byte类型详解
2018/12/04 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
python中如何使用虚拟环境
2020/10/14 Python
Python中return函数返回值实例用法
2020/11/19 Python
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
巴西最大的珠宝连锁店:Vivara
2019/04/18 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
会计电算化专业毕业生推荐信
2013/12/24 职场文书
老公给老婆的道歉信
2014/01/10 职场文书
2014年创卫实施方案
2014/02/18 职场文书
导游词之河北邯郸
2019/09/12 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS
js Proxy的原理详解
2021/05/25 Javascript