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来实现多平台,那就更要思之慎之了!

### 回答1: LabVIEW是美国NI公司推出的一款图形化编程软件,主要用于工业自动化、测量与控制系统等领域。近年来,随着人工智能技术应用的广泛开展,人脸识别成为了一个重要的应用领域。而在这个领域中,LabVIEW也发挥着十分重要的作用。 首先,LabVIEW具备了强大的图形化编程能力,可以对传感器采集的数据进行实时处理和分析。人脸识别需要采集大量的图像数据并进行分析和处理,LabVIEW的图形化编程功能能够方便地实现这些操作,从而提高人脸识别的效率和准确性。 其次,LabVIEW具备了丰富的模块化功能,可以针对人脸识别领域特定的需求进行精细化的编程。比如说,在人脸识别中,会包括人脸检测、人脸特征点检测、人脸识别等多个环节。LabVIEW可以针对每个环节进行模块化实现,从而提高程序的模块化程度,降低程序的复杂度。 最后,LabVIEW具备了很好的兼容性和扩展性。它可以与其他编程语言进行无缝集成,如C++, Python等,更加灵活地应用于不同的人脸识别场景中。同时,LabVIEW也支持用户自定义的模块,可以灵活扩展人脸识别应用的功能。 综上所述,LabVIEW在人脸识别领域的应用前景广阔。通过其图形化编程、模块化设计和可扩展性等特点,可以为人脸识别应用带来更高的效率和高精度的识别结果。因此,LabVIEW人脸十倍并不言过其实。 ### 回答2: LabVIEW是一个高级可视化编程环境,该环境在各个领域广泛应用,包括人脸识别。人脸识别技术是一个快速发展的技术,这是因为它在许多应用中都起到重要的作用,如安全和身份认证。通过使用LabVIEW人脸识别电路,我们可以使该技术更快更准确。 LabVIEW人脸识别电路的工作原理是先通过摄像头获取人脸图像,然后将这些图像传输到计算机中,通过使用计算机视觉算法和人工智能技术来进行分析和处理,最后将检测到的人脸与数据库中的数据进行匹配,以确定是否为授权用户。由于LabVIEW具有可视化的特点,这使得在处理这些数据时更加容易且可视化,使开发人员更容易识别错误和削减开发时间。此外,使用LabVIEW还可以带来更高的性能和更好的灵活性。 因此,可以说LabVIEW人脸识别技术可以让人脸识别技术的速度提高至少十倍,其原因在于LabVIEW独特的设计、性能和可视化能力。这也是为什么越来越多的企业和应用程序选择使用LabVIEW来实现人脸识别技术。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值