浅谈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 树形结构的选择器
Feb 15 Javascript
jquery限制输入字数,并提示剩余字数实现代码
Dec 24 Javascript
JS+CSS制作DIV层可(最小化/拖拽/排序)功能实现代码
Feb 25 Javascript
jquery 列表双向选择器之改进版
Aug 09 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
Apr 29 Javascript
按钮接受回车事件的三种实现方法
Jun 06 Javascript
javascript实现简单的二级联动
Mar 19 Javascript
jQuery中借助deferred来请求及判断AJAX加载的实例讲解
May 24 Javascript
vue组件与复用详解
Apr 08 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
vue 中几种传值方法(3种)
Nov 12 Javascript
Threejs实现滴滴官网首页地球动画功能
Jul 13 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
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
javascript 自动转到命名锚记
2009/01/10 Javascript
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
jquery.ui.draggable中文文档
2009/11/24 Javascript
使用jquery获取网页中图片高度的两种方法
2013/09/26 Javascript
手机平板等移动端适配跳转URL的js代码
2014/01/25 Javascript
javascript数组操作(创建、元素删除、数组的拷贝)
2014/04/07 Javascript
必备的JS调试技巧汇总
2016/07/20 Javascript
js判断iframe中元素是否存在的实现代码
2016/12/24 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
使用bat打开多个cmd窗口执行gulp、node
2017/02/17 Javascript
vue.js图片转Base64上传图片并预览的实现方法
2018/08/02 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
Vue.js实现备忘录功能
2019/06/26 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
Python中字典的基础知识归纳小结
2015/08/19 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python使用sorted排序的方法小结
2017/07/28 Python
python实现大文本文件分割
2019/07/22 Python
python爬虫添加请求头代码实例
2019/12/28 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
2020/02/26 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
企业节能减排实施方案
2014/03/19 职场文书
建筑公司员工自我鉴定
2014/04/08 职场文书
公司年终奖分配方案
2014/06/16 职场文书
贷款委托书
2014/08/01 职场文书
刘胡兰观后感
2015/06/16 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript