扫码关注官方订阅号
最近需要用react。 学习了一下,感觉这框架太麻烦了。简单的功能代码多不说,而且一个值可能需要跨好几个组件传过来。如果大项目,可能还需要redux来管理state,这样就又引入了reducer, store和action。这么麻烦的框架,肯定有优点吧,不然也不可能这么火。哪位大手给说说react的优点在哪?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
首先react通过介绍新的声明式语法JSX来重新定义视图开发,优点其实官网就有,不过我可以简单说两句:
react
JSX
第一,学会了react以及这个JSX语法,你不光可以通过react写web;也可以通过react-native写ios或者android的应用;甚至可以通过react-blessed写terminal可视化应用;当然也可以通过react-native-desktop写桌面应用。因为JSX这种声明式语法实际是在构建一个抽象的视图层,这种抽象可以通过不同适配器适配到各种显示终端,这总够屌吧?
web
ios
android
terminal
第二,说回到web版的react,她有virtual dom,这个东西的好处是减少DOM操作,减少DOM操作的目的是提高浏览器的渲染性能,这听起来也够屌吧?
virtual dom
DOM
第三,她倡导使用flux模式来进行组件间数据传输,这种做法叫unidirectional data flow(单向数据流),单向数据流的好处是与之前angularJS提出的two-way data binding相比较而言,因为单向,所以各种变化都是可预计、可控制的。不像two-way data binding那样,变化一但复杂起来,大家都互相触发变化,到最后一个地方变了,你根本猜不出来她还会导致其他什么地方跟着一起变。这个需要大量实践才能有所感受,如果你初学,那听听就算了,不必死磕。
flux
unidirectional data flow
angularJS
two-way data binding
第四,她倡导使用immutable object(不可变数据),不可变的好处是大大节约了脏检查的消耗,有兴趣可以看我翻译的[译]JavaScript中的不可变性(Immutability)
immutable object
可能还有其他,不过我现在能想到就这些吧,是否符合你自己预期,自己多实践,有了心得之后再来回顾这些好处更有价值
现在在做react项目,我先说2点吧
性能比angular要好,虽说不知道跟jQuery比谁更好,但反正不差。
减少了很多很多的操作DOM的逻辑,组件的设计变得非常简单,以前写UI的时候往往为了性能,要设计很多DOM的操作逻辑,用了react之后,这些都不给你做了,由他的state跟props来传递给VDOM,很省事,更专注于UI层面。
主要的优点是大家都按一样的规范来写代码,就象java写后台查数据本来用jdbc一条sql就搞定,但分成action service dao分门别类地存放,这样维护性好,大公司的代码需要规范,这样出了问题好找原因
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
首先
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)可能还有其他,不过我现在能想到就这些吧,是否符合你自己预期,自己多实践,有了心得之后再来回顾这些好处更有价值
现在在做react项目,我先说2点吧
性能比angular要好,虽说不知道跟jQuery比谁更好,但反正不差。
减少了很多很多的操作DOM的逻辑,组件的设计变得非常简单,以前写UI的时候往往为了性能,要设计很多DOM的操作逻辑,用了react之后,这些都不给你做了,由他的state跟props来传递给VDOM,很省事,更专注于UI层面。
主要的优点是大家都按一样的规范来写代码,就象java写后台查数据本来用jdbc一条sql就搞定,但分成action service dao分门别类地存放,这样维护性好,大公司的代码需要规范,这样出了问题好找原因