新公司的后台管理用了React技术栈。小程序维护告一段落后,马上给了我一个后台任务。之前对React的了解基本只有名字,这次带着需求,看文档,看代码,写代码,因为有vue基础,上手还是蛮快的,两周内终于按时搞定了,对React也多了一些了解,在这里简单记录一下。
因为是先看了Vue再看React,不可避免的会把他们放在一起进行比较。由于现在对于React的了解不够深入,所以比较得出的大多数结论都是Vue更胜一筹,姑且先记下来:
- 相比Vue,React的使用JSX在render函数里边写模板,看惯了Vue代码再看JSX真的觉得非常丑陋,html标签,组件标签和js,变量混在一起,并且大量的地方使用三元表达式,很乱很不优雅。
- 相比Vue,React的组件的代码很不整洁,比如每次都要写的
super(props);
,再比如事件处理时类似this.handleClick = this.handleClick.bind(this);
这种代码,虽然有相应的第三方包autobind-decorator来做简化,但相比Vue基本隐藏了所有与业务逻辑无关的细节,React在这些地方的处理还是有点莫名其妙,每个组件都要写重复且对使用者来说无意义的代码,很不友好。 - 另外,React官方不推荐使用继承,而是用组合的方式共用组件。个人一时间觉得不太习惯,但是仔细考虑了两者之间的区别之后,得出了下边的结论:
- 混合vs继承
- 当你有一个组件a,又要弄一个跟他80%相似的组件b时