最近需要用react。 学习了一下,感觉这框架太麻烦了。简单的功能代码多不说,而且一个值可能需要跨好几个组件传过来。如果大项目,可能还需要redux来管理state,这样就又引入了reducer, store和action。这么麻烦的框架,肯定有优点吧,不然也不可能这么火。哪位大手给说说react的优点在哪?
React + Redux这一套确实很容易产生大量的样板代码,但是基于virtrual diff 和 redux/flux之类状态管理,很容易让你的代码保持可维护和扩展性。所以主要还是看题主需要用来做什么项目,不一定非要用react
优点就是,能够 hold 住非常大型的单页应用。
缺点是,小项目开发也变得复杂了很多,学习成本比较高。
首先react通过介绍新的声明式语法JSX来重新定义视图开发,优点其实官网就有,不过我可以简单说两句:
第一,学会了react以及这个JSX语法,你不光可以通过react写web;也可以通过react-native写ios或者android的应用;甚至可以通过react-blessed写terminal可视化应用;当然也可以通过react-native-desktop写桌面应用。因为JSX这种声明式语法实际是在构建一个抽象的视图层,这种抽象可以通过不同适配器适配到各种显示终端,这总够屌吧?
第二,说回到web版的react,她有virtual dom,这个东西的好处是减少DOM操作,减少DOM操作的目的是提高浏览器的渲染性能,这听起来也够屌吧?
第三,她倡导使用flux模式来进行组件间数据传输,这种做法叫unidirectional data flow(单向数据流),单向数据流的好处是与之前angularJS提出的two-way data binding相比较而言,因为单向,所以各种变化都是可预计、可控制的。不像two-way data binding那样,变化一但复杂起来,大家都互相触发变化,到最后一个地方变了,你根本猜不出来她还会导致其他什么地方跟着一起变。这个需要大量实践才能有所感受,如果你初学,那听听就算了,不必死磕。
第四,她倡导使用immutable object(不可变数据),不可变的好处是大大节约了脏检查的消耗,有兴趣可以看我翻译的[译]JavaScript中的不可变性(Immutability)
可能还有其他,不过我现在能想到就这些吧,是否符合你自己预期,自己多实践,有了心得之后再来回顾这些好处更有价值
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。