从React和angular看技术路线的分歧

无论ReactJs还是其它什么,我们在看的时候都要看它们的思路、方面,而不要一开始时就扎进它的代码细节中。。。

最近在看一些reactJs的资料,有一些收获,写成文章跟大家分享一下,其中很自然的也会有我自己的一些主观看法,请大家批判的阅读。

React这个东西是facebook搞出来的,如果是国内搞出来的是否还能还能这么火么?这个问题是我在知乎上看到的。这个问题的出发点很有意思,不去探究react本身如何,而是去撕它背后的干爹,呵呵

我为什么提这个问题呢,因为这个问题的立场是我个人主观上最反感的。

我的立场一向很明确,我们都是搞技术的,算是吃技术饭的,那么一个新东西出来了,我们要做的是先去把它研究个大概,而不是先上去表明立场,然后开始互喷。

react它的干爹是谁并不重要。看事实,现在它就是火了,那么我们去学一下它的精髓,看看它的思想。可能以后它不火了,但那依然不重要,因为我们已经吸收了它的精华。这才是我以为的学习的正确立场。

React这个东西,说到底就是一个View,它只做了UI层的东西。所以它更多的是一个框架,而不是一个库,不是一个解决方案。所以从这个角度来讲,许多人都说React和angular不是一个东西,没什么可比的。普遍认为angularJs是一个大而全的框架,它本身的功能就比React要多的多。

如果要用React,那么需要许多其它的插件来做路由管理,数据流管理,测试模块,依赖管理等等,所以才有所谓的React全家桶套件。总之开发环境的配置很是有些麻烦,所以也有另一种说法,React的全部强制组件化,使前端有过度设计之嫌。

虽然我在工作中没有使用过React,但我依然是更喜欢React更多一此,无它,只因为简洁灵活。它的JSX写法相当于一种XML语法的转换,你可以理解为就是把HTML写在JS里,JSX其实就是JS + XML,所以React可以自定义标签。而实质上,你编写的是基于对象的XML。因为在React的设计者看来,HTML的功能很弱,需要用JS加经强化。

这在我看来,就是React和其它所有库、框架的根本性区别。其它的这些JS库,基本上都是把DOM放在JS之外考虑,用JS来操作DOM的,但React的心思就是,“不把HTML和JS分开了,干脆放一块写吧”,就像这样:

<ul>
  { heroes.map(hero =>
    <li key={hero.id}>{hero.name}</li>
  )}
</ul>

你说,这段代码看起来像不像JS模板?要我说,是的。React就是只做UI层、view层的事情嘛。那干嘛还单独再搞个V层,没必要的。

React里,有一些是它自己的语法,但更多的是还是原生javascript的东西,这对于自己的技术发展很有好处。

反面的就是angularJs,它为什么学习曲线陡峭,就是因为你要学它,就得学一堆angular自己的语法。如果你换个公司呢?如果你换个项目呢?虽然不能说浪费了,但到新框架里完全用不到angular的语法倒是真的。

如果你选择了React,那么你要为它的简洁灵活所付出的代价,就是你要对业务了解的更加深入,因为你必须根据业务场景,选择适合的库、插件的组合。就像前文所说,React只管View,不管其它。

这其实是一个学习成本的选择问题。

本文分享自微信公众号 - web前端教室(webfeel)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-10-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

可怕!你的黑历史「老照片」,这款小程序都翻出来了 | 亲儿子 #14

不仅明星们会有许多「想重金删除的」老照片。即便是普通人,突然翻出几年前的旧照,有时也恨不得马上都删掉吧。

13520
来自专栏知晓程序

懒得打字?这两款文字识别小程序,解放你的双手

在平时的工作和学习生活中,一旦碰到一些需要拷贝下来的图片上的文字,通常你会怎么做呢?

62320
来自专栏腾讯社交用户体验设计

面向设计的半封装web组件开发 - 腾讯ISUX

23340
来自专栏SAP最佳业务实践

SAP S/4HANA最佳业务实践:Order-to-Cash订单到收款-2客户360度视图

Details of the Object Page Customer -360°View客户360度视图 –Header 概览 –Contacts 合同 –S...

325110
来自专栏极客编程

VueJS && ReactJS 如何?听听别人怎么说

使用所有新的库和框架,很难跟上所有这些库和框架,也就是说,这就需要您决定哪些是值得花时间的。

19450
来自专栏编程

互联网时代,如何成为优秀的web前端开发者?

互联网技术发展日新月异,成为成为一名优秀的web前端开发者,需要不断学习,关注行业前沿。 本经验贴分享如何成为优秀web前端开发者的经验,供读者参考。 步骤1 ...

24180
来自专栏IT派

Vue 超越 React 破 10 万星,比球赛精彩

近日,Vue 在 Github 上的星星数第一次超过了 React,React 的主要开发者 Dan 在 Twitter 上表示了祝贺。

11520
来自专栏Java学习网

新手Web设计师应该避免的 6 宗罪

新手Web设计师和开发人员往往以有缺陷的创作而告终,却不知道真正的故障出自于哪里。虽说有这么多的设计书籍,但即使都读了,也不会对最后的设计有任何意义。在第一个原...

24770
来自专栏Java学习网

程序员对美工的五大抱怨

  就像猫和狗、该隐和亚伯一样,程序员和美工也是对死对头。程序员和美工就像来自不同星球的两种完全不同的人,他们脑袋所关心的事情也完全不同。 程序员希望网站运行起...

40650
来自专栏BestSDK

5个实例,让你轻松掌握自适应网页设计

移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?自适应网页设计的出现很好的解决...

58190

扫码关注云+社区

领取腾讯云代金券