Ant-vue table的单元格合并已经使用自己的slot插槽

本文介绍了在Ant Design Vue的Table组件中如何实现单元格合并及自定义插槽的使用。通过在`a-table-column`中绑定函数解决简单合并问题,并探讨了jsx语法在Vue中创建复杂内容和事件处理的方法,特别是处理含有按钮组或事件的单元格合并问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ant-vue table的单元格合并已经使用自己的slot插槽

之前在做一个ant-design的项目的时候,遇到一个单元格合并的问题,简直头疼,其实在ant中进行简单的内容合并单元格,其实很容易也很方便,最简单的凡是就是在a-table-column标签中进行绑定一个function,代码如下(由于之前比较喜欢template的方式,所以下面都是template的方式进行代码展示,js的数据方式逻辑是一样的):

//核心是customRender这个对象
<a-table-column
data-index="logisticObj" 
width="150px" 
:customRender="mergeTable" />
//js
//children是返回的内容,attrs里面是合并的单元格公式,后面的数字是代表几行/列 ,如果被合并了的未知就用0进行占位
mergeTable(text, record, index) {
	return {
		children: text,
		attrs: {
			rowSpan:1
		},
	}
},

到这里一些简单的合并什么的基本上都能进行处理了。
接下来难点来了,我们经常会在column中进行设置一个自己的插槽,但是貌似这这里设置一个插槽并不会进行渲染,亲测过很多次,返回的都是children中的内容。
针对这个,特意去了解了下源码中的要求,这里只能插入 jsx 语法的代码片段。如果是react开发的人,应该对这个不默认,但是vue中用的 jsx 还是相对较少的,比如返回一个链接:

return {
		children: <a>text</a>// 一个div   <div>text<div>
		//一个js处理了的内容   <div>{text.length}</div>
		//一个html的代码字符串 <span domPropsInnerHTML = { htmlInfoStr }></span>
		//剩下的html代码等类似
		attrs: {
			rowSpan:1
		},
	}

通过上面的,简单的类似于slot的使用方式也能进行渲染了,使用真是的slot研究了一段时间,貌似没有研究成功,如果有人有了结果,可以私信@我一下,互相学习一下。
上面这些都是一个简单的渲染方式,以及渲染的内容替换等,真正让我头疼的是,如果合并的是一个按钮组或者带有事件的东东,这个怎么弄?
踩了一路坑,得到了一种方法,废话不说了,代码如下

	children : (
		<div>
			<div class=" spanLink" 
			onClick={ () => this.yourFunction(a,b,c,d)}>
			一个带有点击事件的template
			</div>
		</div>
	)

这里重点的是只能用 纯 jsx 语法进行编写,事件推荐使用括号函数进行带入,参数正常传递就可以了。
如果发现文章中错误的内容可以@我,以上内容只是为了记录一点经历的问题和分享一下自己的解决方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值