我曾用 Angular 重写了 jQuery 应用,如今却被 React 逼疯了
你是一位专业写文章的作者
有个写代码的老手被新工具整懵了。他叫马可,干了二十多年网站开发,最近用了个叫React的热门工具。没想到越用越难受,干脆写了篇文章吐槽。
这事儿挺有意思。马可从前用老工具jQuery,后来换成Angular。那时候觉得Angular太厉害了,能自动更新网页内容。以前调个按钮显示都得自己写代码,Angular直接帮你搞定。用他的话讲:"Angular是真救星。"
结果好景不长。过几年Angular大改版,变得特别复杂。正好React冒出来,看着简单清爽,大伙儿全跑去用了。马可也跟风学React,接了几个活。
用着用着出问题了。React名义上叫"工具库",意思是只提供基础功能。可实际做项目时得自己东拼西凑,每个项目都像搭积木,搭法还都不一样。马可连着做了两个项目,气得直接转行做后台去了。
没想到最近接私活又撞上React。这次体验更糟,他直接列了三宗罪:
第一宗罪:数据管理像乱麻。按React规矩应该从上往下传数据,实际操作特别麻烦。结果大家发明了"钩子函数",随意调用数据。马可气笑了:"这不就是给全局变量换了个名字?"好比全家人共用遥控器,谁都能乱换台。
第二宗罪:钩子函数难懂。马可重点骂了个叫useEffect的功能。本来设计是处理副作用的,比如点按钮后连服务器。实际大家都在里面塞初始化代码。"这不相当于用筷子开啤酒瓶?"更绝的是后面还跟着连环钩子,代码像缠绕的耳机线。
第三宗罪:玩法越搞越花。马可看到朋友写了篇"React常用设计套路",惊得下巴掉地。光是在网页上显示列表就有七八种玩法,还有人把CSS样式也写进JavaScript里。他直呼:"至于吗?这比老太太裹脚布还绕!"
骂完了他倒想通了。不是工具不行,而是网站要做的事实在太复杂。做个电烤箱才几个按钮,现代网站动不动几百个功能点。就像小孩搭城堡,木块越堆越高,不塌才怪。
他给出两条实在建议:
对产品经理:少加点功能吧!每多一个按钮,代码复杂指数级增长。后台加个工具要被审核三天,凭啥前端就能随便堆功能?
对程序员:别动不动上React。普通网页用服务器渲染,真正要互动的地方再嵌小工具。就像盖房子,卧室该刷漆刷漆,犯不着整面墙贴瓷砖。
老码农最后叹口气:"工具是帮人的不是整人的。下次遇见花里胡哨的新框架,我先问一句——这玩意儿真比老办法省事么?"