前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从React和angular看技术路线的分歧

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

作者头像
web前端教室
发布2018-02-06 16:17:32
9960
发布2018-02-06 16:17:32
举报
文章被收录于专栏:web前端教室web前端教室

无论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分开了,干脆放一块写吧”,就像这样:

代码语言: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,不管其它。

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 web前端教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档