Tencent / tdesign-vue-next

A Vue3.x UI components lib for TDesign.
https://tdesign.tencent.com/vue-next
MIT License
1.46k stars 478 forks source link

[Table] 取消rowKey 字段默认值为id,应该用一个内置唯一标识机制代替默认id值 #4751

Open Alsmile opened 3 days ago

Alsmile commented 3 days ago

tdesign-vue-next 版本

1.10.3

期望结果

[Table] rowKey 字段应该用一个内置唯一标识机制代替默认id值 因为业务经常很多数据没有id,并且很多情况没有一个列可以作为唯一字段。非要让用户自己临时搞一个唯一字段,不是增加用户心智负担吗。

用户没有配置时,自己内置一个临时唯一字段例如:__id不复杂吧。在应用侧重复做类似事情多了,心累

心智负担多了,下个项目可能就用其他觉得更好的可以的代替轮子了

github-actions[bot] commented 3 days ago

👋 @Alsmile,感谢给 TDesign 提出了 issue。 请根据 issue 模版确保背景信息的完善,我们将调查并尽快回复你。

uyarn commented 3 days ago

之前其实有同学建议增加函数方法可以支持多个字段组合的 我们再讨论下

Alsmile commented 3 days ago

之前其实有同学建议增加函数方法可以支持多个字段组合的 我们再讨论下

如果我使用excel一定必须要多个字段组合唯一吗

chaishi commented 3 days ago

id 是一个一直要删掉,而没删掉的内置,本来就要取消的

chaishi commented 3 days ago

频繁的 rowKey 计算也是非必要的计算量, 如果组件内部要加,只能在传入 data 数据的地方做一层拦截,先计算完成唯一标识,再继续进入后续渲染。

chaishi commented 3 days ago

还有一个点,如果是内置唯一标识:删掉 id,使用 __id 也有风险,那些没传 rowKey 的业务需要注意,这会是一个 BreakingChange

chaishi commented 3 days ago

有些业务,一般会封装一些独立的业务组件,如:表格、表单,实现一些业务上通用的功能, 如此,很多功能便都只需要开发一次,不需要重复。 在这个功能支持之前,可以先尝试一下。

Alsmile commented 2 hours ago

还有一个点,如果是内置唯一标识:删掉 id,使用 __id 也有风险,那些没传 rowKey 的业务需要注意,这会是一个 BreakingChange

我是想说,很多普通table场景,用户不在意唯一标识。如果从程序角度确实需要唯一标识的,有一个缺省内部机制,不抛给应用者,体验会更好