vue3使用render对element-plus的table组件封装


需求:

自定义el-table的某些列

涉及知识点:

1.父组件传递给子组件render函数,自组件如何渲染出来

2.vue3中render函数使用第三方UI组件、传递属性、绑定事件

关于render函数的变更文档:

https://v3.cn.vuejs.org/guide/migration/render-function-api.html#_2-x-%E8%AF%AD%E6%B3%95-3

实现:

父组件:

{
    title: '操作',
    key: 'operation',
    render: (row:Object) => {
        return h('div', {}, [
            h(btn, {
              type: 'text',
              size: 'small',
              onClick(){
                getDetail(row)
              }
            }, '查看'),
            h(btn, {
              type: 'text',
              size: 'small',
              onClick(){
                getDetail(row)
              }
            }, '编辑')
        ]);
    } 
  }

 子组件(table组件)

<Expand :column="item" :row="scope.row" :render="item.render" :index="index" />

 

 expand.ts

import { h } from 'vue';
export default {
    props: {
        row: Object,
        render: Function,
        index: Number,
        column: {
            type: Object,
            default: null
        }
    },
    render: function () {
        return this.render(this.row)
    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM