`
aric_chen
  • 浏览: 8996 次
文章分类
社区版块
存档分类
最新评论

ReactJS ,是否言过其实?

 
阅读更多

最近前端大热,各种MVC框架层出不穷,大有百鸟争鸣之意。


这“百鸟”中,数ReactJS尤其火热,出身高贵,一面世就引起关注! 之后Facebook更是宣称支持构建安卓以及苹果原生应用,这对很多烦恼于多平台的企业更是一场及时雨!


但是事实真的如此吗?我在【如何选择框架】一文中讲过,做过程序员的,对一些词语根本没有招架之力,比如丝袜,滴蜡,皮鞭.....


不好意思,讲错,是跨平台,企业级解决方案,技术规范...


如果你在选择一款框架时,仅仅看官方的介绍,或者看百度上排名第一的软文,那你只能期许自己的运气一定要很好,好到踩到狗屎运,才能误打误撞选对了框架。


我作为一个地地道道的程序员,听闻ReactJS如此大热,也不免心痒难耐,经过一番学习,终于搞明白ReactJS的原理。那么就来讲讲我对于ReactJS的看法吧。


1. ReactJS不是MVC框架,仅仅是 View端技术

很多人说Web技术的未来是面向组件技术(Web Components)! 组件即类似Bootstrap框架中的JS组件,但是这类组件没有解决一个至关重要的问题:【数据绑定没有【数据绑定】,代码中就会充斥着操作DOM的代码,也就只能使用JQuery来手动控制界面的刷新,这是一件相当痛苦的事情。

而ReactJS就是具备【数据绑定】的组件技术,让你抽离无尽的数据操作,只需要关注界面逻辑。


ReactJS属于组件技术,仅仅实现了View, 可是对于Web开发,除了View端,还充斥着事件管理,模块化,动态加载等等。使用ReactJS,就需要手动造轮子,整合其他框架,不要认为这是一件简单的事情, 弄不好会走火入魔!


PS:目前已经有人尝试结合Backbone和ReactJS,组成新的MVC框架(http://www.iteye.com/news/30771)


2.ReactJS JSX,用XML写DOM,靠谱吗?

ReactJS在写DOM代码时,建议使用JSX语法糖,然后通过NodeJS再编译成JavaScript代码运行,虽然也支持原生JavaScript,但是写起来非常臃肿。

对于这类黑盒运行的“转换”技术,前期你都会尝到一些甜头,吃到后面才发现原来是“夹心”的,夹的还是“黄莲”。从GWT,JSF,再到Coffee Script,Demo版本无一不让人为之神往,而成功的案例却寥寥无几,几乎可以说是没有.


所以,讲起JSX,论坛上都是眉飞色舞,但在末尾都会加上一句:这是我仿照XX写的Demo!


3.ReactJS Native,打造App端原生态应用,真的能实现吗?

ReactJS Native可以针对不同的平台,可以生成原生Layout! 它不是类似Phonegap的原理,而是【learn once, write anywhere】,通俗点就是说,学会了ReactJS,针对所有平台都可以使用这个语法! 也就是每个平台的代码还是要单独写,只是编程语言是一样的而已!

要实现learn once, write anywhere】,也要开发基于不同平台的组件库,兼容组件的API等,这也是一件大工程。目前ReactJS Native官方也声明:正在完善中... 所以要兼容多平台,这也远远不是一个成熟的解决方案。 对于将来是否能实现,不好妄言。


4.ReactJS VS AngularJS

很多人喜欢单纯的比较各种框架,Facebook官方也会讲ReactJS比AngularJS快!抛开上下文,单纯的讲快,其实是一种彻彻底底的流氓行为!

从范围来讲,ReactJS仅仅是一个View框架,而AngularJS包含MVC,依赖注入,模块化等等,本身并没有任何可比性!

讲到ReactJS的快,Facebook官方讲的仅仅是DOM的渲染速度,而代码中也隐藏了很多的猫腻,不能不让人为之遐想。

附上链接:http://www.infoq.com/cn/news/2015/06/is-react-really-fast


5.学习曲线

有一些人抱怨AngularJS的学习曲线太过陡峭,而ReactJS可以平滑过渡,就本身技术而言,这点我不否认。但是仅仅ReactJS不能搞定前端,你要顺便学习下Backbone,然后你会发现Backbone代码不太好组织,再顺便学习RequireJS....

所以,当讨论学习曲线的时候,千万不能鼠目寸光!



6.ReactJS到底还能不能用?

到目前为止,我并没有讲ReactJS的任何突出的优点,大家肯定觉得完全不能用嘛。 其实非也!

脱离业务来讲技术,本身也是一种耍流氓的行为。在选择框架时,一定要结合自身业务,如果你现在要做一个小型网站,并且之后也不会扩展,那我推荐你使用ReactJS,简单快速!

如果你要搭建一个平台,并且平台具有很强的可扩展性,那就要思之慎之!如果你要使用ReactJS Native来实现多平台,那就更要思之慎之了!

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    半导体泡沫论言过其实.pdf

    半导体泡沫论言过其实.pdf

    Python 核心编程 第二版

    “之前就听到许多对陈仲才《Python核心编程》的溢美之词,最终这些褒奖被证明都没有言过其实。我想这是现今学习Python最出色的书籍了。我认为仲才的书超越《Learning Python》(O’Reilly出版社),《Programming ...

    bios学习资料

    很多朋友也有着一个误区,认为随意设置BIOS会让主板损坏,当然这有些言过其实了,但设置不当的BIOS让计算机不能正常稳定的工作却是有可能的!在这儿分享首先简要下BIOS是什么,更详细介绍详见:想更熟练安全的学习...

    深入理解linux内核(第三版.中文)【有目录】

    抱地势,勾心斗角”也非言过其实。阿房宫在规模和结构上给人的震撼可能与Linux 有 异曲同工之妙。“楚人一炬,可怜焦土”,可能正是因为它的结构和规模,阿房宫在中国 两十多年矗极的计建历史中终于没有再现,只能叫...

    企业的一切皆需用大数据思维

    在各种应用大数据的声音不绝于耳的今天,到处有数据已是普遍的共识的,而对于数据的要命性,很多人却还不见得认同了,您可能觉得言过其实了,凭什么你说大数据会要命?我们没有用大数据就活不了了吗?而对于当今人类...

    中文情感词汇本体.txt

    中文情感词汇本体库是大连理工大学信息检索研究室在林鸿飞教授的指导下经过全体教研室成员的努力整理和标注的一个中文本体资源。该资源从不同角度描述一个中文词汇或者短语,包括词语词性...言过其实 idiom 1 1 NN 5 2

    VS代码辅助工具Visual Assist X 10.4 完美版

    以前的版本一样,它可以同时支持C++、C#、VB等各种VS支持的语言,这样,一个基于不同开发语言的项目中也能方便地使用Visual Assist...它都支持得几乎完美(一点儿也不言过其实哦,试一试就知道了,不过得用得其法啊)。

    在ASP.NET中显示层次数据

    一开始,我认为它只是言过其实的自吹自擂,可是现在,当我真正有机会对它进行研究时,发现它能如此轻松地完成很多任务,尤其在显示数据方面更是如此!但不幸的是,当我尝试嵌套ASP:repeaters以显示层次数据时,却卡...

    Linux内核学习

    其关系错综复杂,叫“廊腰缦回,檐牙高啄,各抱地势,勾心斗角”也不言过其实; 阿房宫在规模和结构上给人的震撼,可能与Linux有异曲同工之妙。“楚人一炬,可怜焦土”,可能正是因 为它的结构和规模,阿房宫在中国...

    Visual Assist

    这样,一个基于不同开发语言的项目中也能方便地使用Visual Assist来帮忙我们开发,而且从VC6开始,中间还有VS 2002、VS2003、VS2005,一直到现在的VS 2008,它都支持得几乎完美(一点儿也不言过其实哦,试一试就知道...

    三星的指责:微软的沉沦与反思

    日前,三星存储芯片业务总裁全东...也许三星对于Windows8的评价有些言过其实,但联想到之前三星在欧洲因微软Surface需求不旺而决定停售的报道,不得不引发微软的反思,尤其是在以智能手机和平板电脑为代表的移动市场。

    数据挖掘与数据分析的区别(经典).pdf

    数据挖掘与分析的区别(ByGanlin) 最牛解释: 关于数据挖掘的作用,Berry and Linoff 的定义尽管有些言过其实,但清 晰的描述了数据挖掘的作用。"分析报告给你后见之明 (hindsight);统计分 析给你先机 (foresight)...

    《数据挖掘实用机器学习技术》(原书第2版) [高清ebook,非扫描, ]

    言过其实的报导声称可以建立算法,在数据的海洋里发现秘密。但事实上机器学习中没有魔术,没有隐藏的力量,没有炼金术。有的只是一些可以将有用的信息从原始数据中提炼出来的清晰明了的实用技术。《数据挖掘实用机器...

    最小二乘法与MATLAB仿真

    主要是帮助学习MATLAB当中的仿真算法,增加对辨识的·1理解

Global site tag (gtag.js) - Google Analytics