React 和 Angular 相比,哪一个的学习曲线更陡峭
发布网友
发布时间:2022-04-27 03:29
我来回答
共1个回答
热心网友
时间:2022-04-20 05:43
拿React和Angular比较本身就没多大意义。
如果非要比较的话,我认为React比Angular 1.x的Directive要简单。
从做一个复杂完整的SPA的角度来说的话,就目前而言,我认为基于React会更难一些(主要以react的角度来谈一下)
1. React 本身只是一个View层的Library,通过state来控制具体的Virtual DOM render,而复杂SPA所需要的额外所有功能都需要自己去寻找解决方案(backbone笑而不语…)。比如如果要增加前端路由则需要额外进行技术选型(react-router、react-routing等等等),更不要说涉及到异步请求的fetch,涉及到状态管理的Flux,flummox,rex等等…
2. 需要深入理解React Component的life circle,以及基于state的开发思想,否则很容易做得不伦不类,说的好像自己项目用了react一样,实际上可能只不过是jquery的心套了层react的皮。更不要说flux系列具有一定的理解难度和学习成本。(另外,设计app的时候会更多的从顶层思考app的状态及状态之间的转化,但并非任何业务场景都适合,很有可能状态中间穿插着form表单所需要的双向绑定,或者不直接通过render而进行的dom操作)
3. react和webpack联系还是比较紧密的,开发react app大多会接触到webpack,接触到webpack自然就会接触到webpack庞大的生态圈,深入下去又是一个具有不太平坦学习曲线的东东。
4. 调试过程中不出意外还会用到react-dev-server,但是如果使用rex的话,还有rex-dev以及对应的各种插件…
5. React文档和资源比angular要少很多,react还没有发布1.0,react本身也在迅速迭代和变化,这意味着它可以更好的进化,也意味着进化过程中跟随者要付出更大的成本。比如某些同学刚用熟flux,就出了reflux,Alt,flummox…用惯了flummox结果人家作者不维护了,说rex用着更爽,作者也跟着用一个口音很呆萌的德国小帅哥写的很呆萌的rex去了…
6. react面相未来,我们可以使用很多ES6和ES7的语法来使得定义一个Component变的更简单,比如我们可以使用class static properties来初始化propType、defaultProps或者state,constructor初始化来代替getInitialState方法等,但react在es6/7中反而不支持使用mixin,需要额外引入第三方库来解决对应的问题。(另外,使用es6/7还需要额外了解如何配置babel,eslint,babel-eslint,eslint-react plugin等等,当然这和react无关,但在开发的时候很可能是需要去学习的。)
7. 基于react的各种插件相比ng来说还是太少,并且大多不成熟,所以真是要用到第三方组件的时候可能需要自己wrap一个component出来。