data中type是不是多余。
AimLuo opened this issue · 3 comments
首先感谢你的issues。
-
data中的type是不是多余的?
这个问题我也考虑了很久,后面版本会对其进行优化,在必要的层面尽量减少data的复杂度。但是,至少目前的版本还是需要type来对对象单元格
进行一个区分,好让程序内部可以明确知道使用者会如何配置指定的单元格。 -
采用这种写法是不是会增加开发的成本,采用jsx语法是不是更好?(这个原因后续可能会加入到readme文件中,你给了我一个启发,表示感谢!)
react-tabllist是支持在data里面写JSX语法的。就比如你上面给的的那段代码,是可以正常解析出来的。但是我其实并不推荐这样写,因为虽然JSX语法在开发时非常的便利,但是在维护阶段却是一场灾难!为什么这么说呢?我们从代码可读性方面来说,如果在data里面写了过多的JSX语法,这里面涉及诸多的DOM结构、DOM属性、静态文本、事件……这样给维护的人看,完全就是一场灭顶之灾!!而且这样非常不利于数据的构建,比如我们从后端拿到object[]
类型的数据,这时我们肯定要对这个数据进行遍历加工,以转换成我们需要的类似二维数组的形式,如果采用jsx的形式,在遍历过程中各种棘手的问题就出现了,很多代码都会重复出现,并且即使你把这些重复代码拆分出去(比如把回调函数onClick写成一个外部函数来调用),那这样写,和我们的对象单元格
写法又有什么区别呢?一样是需要做额外的配置工作来保证程序的正常运行。
其次,采用data的方式来生成列表或表格,在最初开发这个组件的时候就再三考虑过了,为了能够清晰地展现一个列表的层级结构,为了使数据更易读,所以采用了最直接的二维数组数据格式,搭配对象单元格,很清晰就表明了这个表格以及内部单元格该如何去呈现。即data用来构建表格的结构及驱动表格,property用来给表格做包装,这样分工合作,反而效率更高、结构更清晰,代码可读性和复用性更高。你觉得呢?如果说这样的写法真的会导致我们增加开发时的时间,我觉得也是值得的,但是我会持续跟进这个组件,也欢迎你能继续提出宝贵的意见,让这个组件朝着更完善的方向发展,谢谢! -
cellOfColumn这个属于property里面的配置项,并不是必须的,它只是作为一种样式上的补充,又或者需要过度配置表格的样式的时候才需要使用到它。
增加type就是为了维护,这个懂了。就跟ts一样,写代码麻烦的要死,不过后期维护方便。jsx语法我试过了,渲染失败。不知道是不是我搞错了。什么时候改为ts来写吧。list.js文件都900😂行了
后续会加入类型定义文件