vue table 里面 slot 的模板复用 slot-scope template v-for
需求
经常在table里面要有自定义列,但是会有相同的自定义列,这个时候又不想写很多一样的template,就可以用这种方式
代码
<template :slot="slotName" v-for="slotName in [
'slotName1',
'slotName2',
'slotName3',
'slotName4'
]" slot-scope="{row, index}">
<AutoTipZen :key="slotName" :iTitle="row[slotName]">{{ toLine(row[slotName]) }}</AutoTipZen>
</template>
代码转配置
刚才那个数组可以从columns的数组里面获取
<template
:slot="slotName"
v-for="slotName in columns.filter(item => item.slotType === 'autoTip').map(item => item.slot)"
slot-scope="{row, index}">
后记正式代码
<template :slot="slotName"
v-for="slotName in columns.filter(m => m.slotType === 'textarea').map(m => m.slot)"
slot-scope="{row, index}">
<AutoTipZen :key="slotName" :iTitle="row[slotName]">{{ toLine(row[slotName]) }}</AutoTipZen>
</template>
columns数组
[
{
title: 'fieldName',
slot: 'slotName',
slotType: 'textarea'
},
{
title: 'fieldName2',
slot: 'slotName2',
slotType: 'textarea'
},
]
函数
toLine (txt) {
return txt.replace(/\r/g, '').replace(/\n/g, '')
},
总结
原理基本上是这个意思,就拆分了业务逻辑,并且可以组合使用。
---------------------------------------------
生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
↑面的话,越看越不痛快,应该这么说:
生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
新博客 https://www.VuejsDev.com 用于梳理知识点