«
react取舍

时间:2023-3   


推广一下自己开发的知识付费+视频课程+问答系统+博客+文档系统rowfish

简单讲一下两者的适用场景,轻喷

React纯粹tsx写起来舒服,性能一般的项目也可以忽略不计,vue中莫名其妙写些像html的自定义组件标签特别烦人,还有那个setup弄进去很奇怪。react目前比较麻烦的一点是antd这个唯一的组件库对css变量支持不行,没有vue的naive,vuetify等好用,移动组件库也垃圾,没有nutui,vant这类宝贝。所以快速产出还是vue比较实在点。

如果日常编程序玩不急着出产品还是建议react。非需要提升一下性能,用react-use的一批hooks稍微优化一下一般就可以了,这个库以及类似的ahooks有很多effect和memo这类优化性能的hooks。如果对less或者css in js这些写法不敏感的话,react简直就是后端兼职前端的神器。尤其react加上后端go/node做全栈,绝对比以前php+jQuery体验还好。vue比较像搭积木,跟后端的spring全家桶类似,搭着搭着就没完没了,react+go一把梭比较舒服,。,react有时候可以和nest做的后端一起做成mono结构,用yargs+swc/esbuild做个统一的启动打包器热更新前后端或打包会很快,而且类型可以共用,用pnpm+lerna做mono很方便的

目前对于react开发的脚手架建议用vue家的vite,或者爱折腾可以自己动手用esbuild或swc做一个简陋的用起来,后端node的话方便做成mono。

程序中生态可以使用reactrouterv6,状态管理我个人习惯zustand,写几个中间件用于自动immer什么的,如果新项目的话建议jotai,别去搞redux-toolkit,mobx这些太烦的东西。组件库的话有设计功底就md,不讲究的话先antd4,等他5就nb了。如果不求稳的话用一下字节的arco也可以,那个resuite问题很多别去弄。请求管理直接fetch+swr.js,当然fetch不喜欢可以自己封装一个axios,别去用reactquery,这东西就跟recoil一样要手动写id来缓存,swr跟jotai一样自动id,快!

React还有两大神器next.js和rn。next比一直beta3的nuxt体验好很多的,试试就知道了,尤其更换了swc后。至于rn,相当于比用vue少学了个flutter,不讲究的话,可以拿来做app,那个vue做小程序的ni什么的做出的app就是个笑话,很不靠谱,rn倒是挺好用的。小程序的话taro已经是标配了,不用多说。

使用react需要注意的一点是,生态更新换代太快,注意随时关注,超过两年没弄基本上就算是重新学了,这点vue会比较靠谱,4,5年来一次非常能接受,react生态差不多半年一变,特别烦。react routerv6跟v5完全不一样需要重新封装,状态管理3年内就从rematch到mobx,又到context hook,现在recoil这类原子的又流行起来,如果不去关注的话很容易废。

总结一下,

如果个人单打独斗做前端,追求编码体验和身心愉悦,本着大道至简的想法,react是不二之选,尤其结合go做全栈或者结合node做mono时更加爽

如果中小型团队快速出产品,vue3目前来看是生态最完善的,至少写完代码,半年之后换个人还能看懂,react基本连自己都看不懂了。不过编码体验基本是没有的,搭积木式的完成任务而已,因为生态非常稳定且都是官方或官方推荐指定的,是一个非常工业性质的框架,所以需要商业上用就选vue,稳如老狗,想随便进个厂养家糊口的vue是最好的选择

大型企业则会有一套自己的标准,react的灵活这时候反成为了优势,这时候如果想进大厂找工作的学学react很有用

如果你想做一个个人全栈开发还能开发移动app,又或者想近大厂,就选react

如果只是想学门技术养家糊口又或者想快出多出产品赚钱就选vue,这类似于后端的golang和spring的选择,纯粹看场景选择,反而,最不需要关注的恰恰是性能

最后说一句就做个页面而已有必要这么讲究?