浅谈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 打造动态下滑菜单实现说明
Apr 15 Javascript
jquery 提交值不为空的元素示例代码
May 10 Javascript
js输出阴历、阳历、年份、月份、周示例代码
Jan 29 Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 Javascript
浅谈javascript中的DOM方法
Jul 16 Javascript
JavaScript数组的一些奇葩行为
Jan 25 Javascript
JavaScript实现九九乘法表的简单实例
Jun 07 Javascript
Node.js Express 框架 POST方法详解
Jan 23 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
Mar 03 Javascript
javascript简单写的判断电话号码实例
May 24 Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 Javascript
vue前后分离调起微信支付
Jul 29 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
MYSQL数据库初学者使用指南
2006/11/16 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
2016/03/11 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
浅谈PHP匿名函数和闭包
2019/03/08 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
jquery validate表单验证的基本用法入门
2016/01/18 Javascript
RequireJs的使用详解
2017/02/19 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
JS实现点击链接切换显示隐藏内容的方法
2017/10/19 Javascript
JS使用tofixed与round处理数据四舍五入的区别
2017/10/25 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
Angular利用trackBy提升性能的方法
2018/01/26 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
python3.6数独问题的解决
2019/01/21 Python
python numpy 按行归一化的实例
2019/01/21 Python
使用selenium模拟登录解决滑块验证问题的实现
2019/05/10 Python
Python函数和模块的使用总结
2019/05/20 Python
Python利用多线程同步锁实现多窗口订票系统(推荐)
2019/12/22 Python
HTML5离线缓存Manifest是什么
2016/03/09 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
2018/01/29 HTML / CSS
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
天鹅的故事教学反思
2014/02/04 职场文书
论文诚信承诺书
2014/05/23 职场文书
2016公司年会通知范文
2015/04/25 职场文书