我们为啥需要 React( 二 )
Vue算是学习曲线比较平缓的框架,国内比较流行,设计也比较符合国人思维。这里就不过多评价了。
这些告诉我们,目前的三大框架还是比较发展趋同,以后免不了一场恶仗。胜出者是谁我不知道,我也不关心,因为我都会(认真脸)
■网友
首先题主要区分两个概念:React 本身和 React 生态圈所推崇的主流应用架构。
React 本身其实还算简单的。最简单的理解,一个组件的渲染函数就是一个基于 state 和 props 的纯函数,state 是自己的,props 是外面来的,任何东西变了就重新渲染一遍,是不是很简单?
但是,如果抛开 React 生态圈现在所有的那些东西,只用 React 本身来做个大型应用,你 hold 得住么?我可以打包票,99% 的开发者 hold 不住。因为大型应用会带来很多规模上的复杂度,比如跨组件通信,多组件共享状态,多人协作的可维护性,大量嵌套组件的性能问题... 等等。这些东西如何处理,都是靠前人填坑才一步步产生了今天的各种设计模式。Flux/Redux 的繁琐,本质上是针对大型应用的复杂度所作出的权衡:用繁琐一些的 API,换长线的可维护性。在规模不够大的应用里,这些问题并不那么明显,那么这些繁琐的 API 也就显得有些过度设计了。
Dan Abramov 自己在推上多次强调过,Redux 的设计是以几个原则为优先的:要让状态的变化可追踪,可重复,可维护。为了达成这个目的,才会有 reducer, action, action creator, middleware 这些概念。本来一个 callApi(res =\u0026gt; a.b = res) 可以做到的事情,现在你需要先写全套然后配上 thunk middleware 才能做到。因此在规模不够的应用里使用 Redux 肯定会觉得杀鸡用牛刀。然而 React 生态圈里面之前并没有适合中小规模应用的状态解决方案,因为 Flux 从一开始就是冲着 Facebook scale 去设计的,并没有考虑中小规模的应用。最近 MobX 也算是在 React 生态圈里搞出点小动静,就是因为它填补了这个空白,然而用 React + MobX 本质上就是一个更繁琐的 Vue。
如果做个比较的话,Vue 本身不加任何库就可以很好地满足中小规模应用的需求,配合 Vuex 可以满足大规模应用的需求。同时由于 Vue 的依赖追踪机制,不管 1.0 还是 2.0 都不存在过渡重渲染的性能问题,shouldComponentUpdate / reselect / ImmutableJS 之类的统统不需要。
其实本来没想提到 Vue 的,只是因为有些人的答案里面非要拿 Vue 来比较。
回到题主最早的问题,我们需要 React/Redux 么?从可维护性的角度考虑,大型应用确实需要,但这不代表任何规模的应用都得用它,更不代表它就是最好的。如果一个方案能够用更简洁的方式满足你的项目对应规模的可维护性需求,并且让你用得爽,那就相信你自己的心,不要因为一些宣传文案看上去很高大上就盲从。
很多 React 传教士喜欢标榜 React is not easy, but it is simple... 我想说,Life is short, easy is underrated.
总结一下:别人说用得爽,不代表你会用得爽;自己用得爽的才是真的爽。适合自己(或者手头项目)的才是最好的。
■网友
既然从 Angular 过来,为什么不学习下 Vue 。你会从 Vue 中看到 Angular 和 React 的很多影子,在未来的 2.0 版本中,Vue 还加入 Vitural Dom,可以说是把 Angular 和 React 的优点都汲取了。
■网友
在此声明一下,只是想通过技术角度去评价框架,并无意去指责或者去嘲讽其它框架,如某些言论表达得不恰当,请私我,我可删除。对于无意义的漫骂或指责,表示不接受也不回复。关于React的问题,我有几点要说:1、React确实存在组件嵌套的性能问题,但是可以通过Redux去解耦以达到目的2、对于引入immutable / reselect 对于大部分并不是必需品,组件粒度越细,state使用得越少,需要引入shouldComponentUpdate的情况越少,其实在项目中真正有用到它们的有多少呢?3、React的中大型项目上的应用并不是太大的问题,国内有Ant.design已经在大量的蚂蚁金融平台和或各类内部平台上使用,尽管Vue也有,但只是实验版本,也并没有再去升级。 在国外:faceBook算大型应用吗?它本身已经就应用了React 16 Alpha 版本,以身试坑,这样算得上 React 在大型应用上有问题吗?4、React是有门槛的,确实没有Mv**那么快让人容易接受,需要有一定的JS基础和开发经验。5、对于理解Redux,有些人需要些更多的时间去理解,有些人却能够在短时间快速掌握,同样是在中小型应用中,确实是有些繁琐,可是我们同样可以通过Redux-Actions去简化这些繁琐。最简的Redux-actions写法如下:Action:
推荐阅读
- 居家养花不需要太多,养这3款多肉,不仅颜值高,而且可镇宅招财
- 用泡沫箱来养多肉老桩?只要我们把细节做好,同样可以养出状态来
- 沉船■长江千吨级沉船打捞记:守护“微笑天使”我们在行动!
- 『我们』无问西东】石奶引的荷包鼓了 【小康路上
- 接待日|省生态环境厅来通开展“企业环保接待日”
- 为啥看到书柜上的藏书会有心旷神怡的感觉
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 为啥工商银行的用户体验如此之差
- 汽车|看了中消协4S店服务测评调查结果,终于知道法系车为啥卖不好了
- 旅行|需要准备哪些物品?全面冬季出游清单,建议收藏带宝宝出门旅行
