最近两年,前端开发已经发生了天翻地覆的变化,涌现出很多优秀的框架,如:angular、 vue、 react等。在让前端开发人员欢呼雀跃的时候,也带来了新的问题,到底应该选择哪个框架作为自己的主攻方向呢?如何选择?选择哪个将关系着我们 的职业生涯,更严重点甚至身价性命,人生最重要的并不是努力,而是选择。以我的判断是,未来是属于React的,既然是推测,那还是说可能性更大些吧(weixin:React实战)。

每次在讨论选择什么语言,什么框架时,总会引来广泛的争论。让我后悔不已的是曾经的Java与C#之争时,我选择了后者,最后绑定在微软这驾马车上,以至于在从事多年C#开发后,不得不转向了Java,C#本来很好,又有后发优势,但是它不幸的是遇上了微软,一个封闭的软件公司,当你遇到问题时,你可能首先只能找微软求救,看看它有没有相关库,不行再看看三方库,再不行,就只能自己动手了,哪像Java来的这么丰富,遍地开花,经典的三方库层出不穷,尽管后来它也开源了,但是太晚了,并且只支持windows。所以开放性是我们选择的重要指标。

那么可能有人说目前所有的三方库都是开源的,都开放,那我们又该如何选择呢?我们选择语言、框架可以参考以下几个指标:

一:开放性。尽量选择开放性的,或者说是开源的语言和框架,用的人多了,才能火起来。

二:热度。热度包括两个维度,一个是参与的总人数,另一个持续增加的人数。总人数少了不行,近期活跃度低的也不行,缺一不可。如果总人数太少,持续增加的人较多,那你还是等等。微软出产品一般规律是:一版本是看着花哨,二版本是试着用用,三版本才算定型,过了三版之后,还能稳定,你再介入吧。

三:后台硬不硬。关键看支持的研究机构或公司牛不牛,不牛的公司当然也可能成功,但概率较低。现在马云要干点什么,比人民群众要容易的多,谁让他的钱多的烧不完呢。

四:应用广度。应用广度是指语言或框架的应用领域是否丰富,Java适用于服务端,Web端、移动端,但C#基本只用于服务端和台式机,尽管Sliverlight也用于移动端,但基本上也就是Windows Phone的一亩三分地上了。

五:先进性。语言或框架是否有成熟的理论支持,关系数据库统治了那么多年,面向对象的将面向过程拍死在沙滩上,我个人认为还是背后理论的强大。

好了,指标列出来了,你可以做一个二维表格,将各个前端框架放进去一一比较了。有兴趣的可以对比一下,我只挑React说说。

React几乎全部满足以上条件。我们可以看看React的个人条件:

一:React开源。不仅React开源,React的核心库、React的生态圈都开源。

二:React开发者众。React的开发者持续增加,最新的统计数据中,不少前端开发者从其它框架转向了React,相反,React开发者却很少转向其他框架。

三:React由FaceBook支持,MIT许可。

四:React应用极广,大家熟知的是Reactjs、ReactNative,分别支持Web端和移动端。并且同时支持Android 和IOS。另外还有处于起步阶段的React VR,支持虚拟现实,可以运用于虚拟现实设备中,支持360度视角。是不是有些小兴奋。来张React VR的Helloworld图。 


五:React是完全的基于组件化的,大量采用函数式编程,Java8中也引进了stream的函数式编程方式。另外React与Angular最大的不同是:React是以Javascript为中心,而Angular是以html为中心,一种是动态语言,一种是展示语言,高下立现。

选择React,你至少可以学习组件化,纯函数式编程方法,选择其它的,你可能会变成一个组装工人,另外学习React,你将可能Web、Android、IOS、VR的开发者,你的学习将事半功倍,你怎么选?最后是,一家之言,事关命运,选择须谨慎!


Logo

前往低代码交流专区

更多推荐