react, vue, angular2 是当下最火的几个框架了,不争论谁好谁坏。在写下此段文字之时,个人对这三个框架都了解不多,angular1 用过, angular2 还未涉足,vue 用过一点,非常喜欢,react 了解一些。最终选择最先学习 react, 因为 vue 的设计思想借鉴了 angular 和 react,所以想着先学习这两个可能对深入理解 vue 会有帮助。 在 angular 和 react 中选择 react 是因为更喜欢小巧非侵入式这种思想, 个人也觉得小而精是前端未来的发展趋势,故以 react 先入手。

学习方法

找了很多的学习网站,以及 demo 来看,发现效果并不是很好,老师讲的 demo 涉及的 react 只是或者“坑”都不完全。 最终我悟出一个道理,真正想要学好一门技术,从官方文档入手或许是最好的方法,特别是像 Facebook,Google 这样的大公司, 开源项目的说明文档是非常友好的,入门教程也非常好。当然,如果有一个很好的老师的教学视频,这也不乏是一种快速的学习方式,但是目前为止 我可能还没有找到这方面的资源。不过不论如何,自己从官网从零开始学,肯定是要扎实一些的。

react 学习感受

  • 真正的大公司,有情怀的公司就是在细节方面做到极致。以学习 react 来说,跟着官网的教程一步一步学,简直是一种享受。
  • 今晚花了两个小时的时间在官网看了入门教程,感受就是,简单极致,严谨,学习起来非常舒服,很值得推荐。– 2017/4/22/0:02
  • 总的花了3个小时左右,看完了官网文档,感受就是,不要再找什么 react 学习教程了,看 官网 去吧。
  • 学习 redux 貌似没有 react 那么顺利。学习 react 的时候,官网有一个转换摄氏度的例子,其中就引入了组件之间状态共享, 互相访问的情况,官网给出的例子就是将状态提升,提升至组件的父组件中去, 这样多个子组件就能够访问父组件的 state。我觉得这也是引入 redux 的最好时机,因为 redux 就是为了解决这一问题的。

react比angular火

以这个标题可能会招来一顿打。不过从目前社区以及 github 数据显示,确实如此。以目前个人接触 react、angular粗浅的了解来看, 这也是一个必然:

  1. 首先人们都喜欢简单的东西,相比学习 angular,react可能更简单一些。 react 的重点在于 DOM 层,理解起来非常容易,就是简单的视图渲染的功能抽离,比如在解释 render() 函数上,浅显易懂, 入门的前端工程师都能在这样的启发下,自己写出一个 render() 函数,react 没有强加给你任何其他的框架思想以及特有的禁锢方法。而 angular 就不一样了,他有着自己完全的完整的框架思想,他强加要求你使用的 装饰器,typeScript(当然你也可以不用)等对于一个后端程序员来说可能很容易,但是对于传统的前端工程师来说就没有那么友好了。因为这使得前端代码变得不那么像前端了。
  2. react 的思想可能更适合前端。前端很大程度上是跟 DOM 或者说是展示效果更加息息相关的,由于 react 设计理念就是围绕DOM的, 所以 react 在 DOM 操作上,对于大多数长期从事前端的程序员来说,更容易接受。而 angular 呢,大而全,设计思想几乎和后端完全一致, 可以说 angular 就是一群后端程序员设计的产物(其中 angular的 typeScript,装饰器等让前端代码变得更Java越来越像)。

选择?

  1. 无论使用什么框架,最终结果都是作品。react 这样的框架对于从事制作一些前端demo的程序员来说绝对是福音,也是不二选择。因为很多前端作品,并不是一个 大型的软件,可能就是一个组件,一个插件或者一个展示页面,那么他就完全没有必要使用 angular 这样的框架。所以,纵观github,react 的项目一定是会比 angular 多,社区自然也会更活跃一些。
  2. 说了这么多,只是个人得使用感受,并不是说谁好谁坏。现在 IT 行业越来越流行“没有最好的,只有最合适的”这样的观点。在说“xxx语言是世界上最好的语言”的程序员可能就只有刚毕业的大学生了。
  3. react, angular 都有着各自鲜明的特点,我想这也是前端发展的一种趋势,针对不同的解决问题有着不同的解决方法,这种方案会逐渐的趋于成熟,渐渐地成为一种行业标准。可能在未来的一段时间里, react, angular, vue 会保持相当一段时间的“三足鼎立”局面。直到又出现一些新的前端需要解决的问题,以上三个解决方案都不能够很好的处理,可能又会促使新的框架出现,无论如何。越来越成熟,越来越规范总是 一种趋势。
  4. 没有最好,只有最合适,貌似不仅适用于技术领域,在万事,在万物都似乎是一句真理。