Skip to content

data中type是不是多余。 #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
AimLuo opened this issue May 26, 2019 · 3 comments
Closed

data中type是不是多余。 #1

AimLuo opened this issue May 26, 2019 · 3 comments

Comments

@AimLuo
Copy link

AimLuo commented May 26, 2019

image
采用这种写法是不是会增加开发的成本,采用jsx语法是不是更好。
data=[['2019-04', '故障率 10%', '变压器运行经济性较差请合理用i电脑', <a target='_blank' href='http://www.baidu.com' style={{color: 'red'}} className='dd' onClick={(event) => { alert(event) }}>下载</a>]]
这种写法岂不是更舒服,下面这个api也不用维护,
image

@oceanxy
Copy link
Owner

oceanxy commented May 26, 2019

首先感谢你的issues。

  • data中的type是不是多余的?
    这个问题我也考虑了很久,后面版本会对其进行优化,在必要的层面尽量减少data的复杂度。但是,至少目前的版本还是需要type来对对象单元格进行一个区分,好让程序内部可以明确知道使用者会如何配置指定的单元格。

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

  • cellOfColumn这个属于property里面的配置项,并不是必须的,它只是作为一种样式上的补充,又或者需要过度配置表格的样式的时候才需要使用到它。

@AimLuo
Copy link
Author

AimLuo commented May 27, 2019

增加type就是为了维护,这个懂了。就跟ts一样,写代码麻烦的要死,不过后期维护方便。jsx语法我试过了,渲染失败。不知道是不是我搞错了。什么时候改为ts来写吧。list.js文件都900😂行了

@oceanxy
Copy link
Owner

oceanxy commented May 27, 2019

后续会加入类型定义文件

@oceanxy oceanxy closed this as completed May 27, 2019
Repository owner deleted a comment from AimLuo May 27, 2019
@oceanxy oceanxy reopened this May 27, 2019
@oceanxy oceanxy closed this as completed May 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants