render渲染一个element-UI的table组件

Posted 晚星@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了render渲染一个element-UI的table组件相关的知识,希望对你有一定的参考价值。

vue组件渲染过程

1,生成render 函数,生成vnode ,将虚拟节点patch(vnode)到绑定元素上。

2,什么是虚拟done?

虚拟DOM也就是我们常说的虚拟节点,他是通过JS的Object对象模拟DOM中的节点,然后在通过特定的render方法将其渲染成真实的DOM节点。

为什么要使用虚拟节点?

频繁的DOM操作会导致大量页面元素的重绘和回流,处于性能优化的考虑我们应该减少重绘和回流的操作。而对虚拟节点的DOM操作,并不会触发重绘和回流,把处理后的虚拟节点映射到真是DOM上,只需要进行一次重绘和回流,提高了性能。

用render写了一个渲染element-UI的table组件

<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 弄'
      , 
        date: '2016-05-03',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1516 弄'
      ]
    
  ,
  methods: 
    clickHandler() 
      console.log(1);
    ,
  ,
  render: function(createElement) 
    return createElement('div', 
      attrs: 
        id: "content"
      
    , [
      createElement('el-table', 
        style: 
          width: '100%',
        ,
        props: 
          data: this.tableData,
        ,
        ref: 'extendTable'
      , [
        createElement('el-table-column',  props:  prop: "date", label: "日期", align: "center"  ),
        createElement('el-table-column',  props:  prop: "name", label: "姓名", align: "center"  ),
        createElement('el-table-column',  props:  prop: "address", label: "地址", align: "center"  ),
        createElement('el-table-column', 
          props:  label: "操作", align: "center" ,
          scopedSlots: 
            default: props => createElement('el-button', 
              domProps: 
                innerhtml: "点击"
              ,
              on: 
                click: function() 
                  console.log(props, '当前行的值', props.row);
                ,
              ,
            )
          ,
        ),
      ])
    ]
    )
  

</script>


<style scoped>
</style>

以上是关于render渲染一个element-UI的table组件的主要内容,如果未能解决你的问题,请参考以下文章

element-ui自定义table表头,render-header使用

element-ui中table渲染的快速用法

element-ui中el-table多层数组渲染问题

vue如何循环渲染element-ui中table内容

vue element-ui动态渲染多级table表头

ElementUI中table使用render/jsx渲染