作者:Teeea
链接:https://www.zhihu.com/questio...
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
运行速度有许多网站都有对比,不过就具体的数值来说,差不多可以认为是没有比较价值了。各框架在最佳实践下运行速度都不会成问题,甚至于广受诟病的Angular1都不见得会有大问题。不过有些小问题还是要注意一下的。比如说angular你得避免频繁触发的事件被zone托管到。react的富文本也需要注意一下,托管输入什么的我搞不懂,emmmmmm……反正知乎超级卡……
开发速度方面。会造成影响的变量相当多。比如说react你想自己搭一套带ssr、路由懒加载的架子,多半会直接累死,其他家也都差不多。我经历的项目里,开发速度很大程度取决于选用的是什么脚手架……就目前的体感来说,用起来最舒服的算是vue的nuxt了,大部分事情都帮你处理好了。angular的cli工具也不错。react的社区最活跃工具最多,于是……天秤座人士对react社区表示强烈谴责。
因为恰巧三个框架都用过一点点,所以说一下我的感觉吧,可能不对……React的单函数组件真的是非常的干净,是能让人感到开心的东西。有些时候从一个项目移到另一个项目都没有成本的。思路清晰,引用方便,我觉得能提高开发效率。Redux和Vuex这类的东西,写起来是有点繁琐的。但是调试时又是另外一种情况了,打开调试工具,读一下那些action,非常迅速的就能定位到bug。繁琐之处可以考虑自己封装一套decorator之类的,虽然好像各个平台的实现和ES的标准都有些出入,但是真的能提高效率。前端页面复杂了就是各种状态值满天飞,指不定什么时候就组合出了一套bug……
Angular是规定得最死的一套框架。初学的感觉就是“繁琐到上天”,但这实际上是个假象……cli很方便,规定得死也就意味着大家写的代码看上去风格更统一,这真不是坏事。只要你想认真做项目,前期一点点的学习成本还是值得回票价的。
Vue如果使用单文件组件的话……小心文件大小,超过500行就及时拆分吧,等代码行数涨到一千以上时就干啥都晚了……因为Vue的data、computed、method、watch之类的东西是拆分开的,很容易相关联的数据、函数之类的东西,被打散分散在不同的地方,那种绝望是没有体验过同事写的两千多行的超大页面的人无法想象的。
用React的别笑,上面那一条对React的JSX也有效……如果是redux的用户,你还得考虑做connect的粒度。粒度太粗组件间传递数据很麻烦,粒度太细……其实你没发现context和全局对象是差不多的概念吗,虽然React对context做了许多限制,但是效果并不觉得好……组件库是框架的重要加分项,React优势很大,可以一波A过去…用好Typescript可以极大提高你的开发效率,这个不是开玩笑的。尤其是你同时接了几个项目的维护,想要跪在地上哭嚎“人脑记忆力是有极限的啊!”的时候。这一点上Angular加分应该很大。总觉得React开发时,编辑器的响应速度更快……也可能是错觉。
最后一提,其实维护阶段很可能会比开发阶段更长更持久,谈“开发速度”时不把维护算进去是有些不合理的。一个组件、一个模块能不能从一处摘下来、随手插到别的地方很轻松就跑起来,过一段时间能不能轻松读懂,是不是能避免各种魔法字符串……这些反而是真正开发中比较需要关注的细节……至少对我来说是这样。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。