浅谈angular和react(面试马后炮1)

用户头像
天津/UI设计师/9年前/377浏览
浅谈angular和react(面试马后炮1)
用户头像
radarz

有关 前端MVC框架 的一些浅薄的讨论资料 (一次洒狗血的面试引发的思辨)

/*

好死不死,小墨又去面试了。

805e59560676a8012193a32a5fa9.jpg

引发一连串的蝴蝶效应:

首先ZCOOL技术博文的开篇之作:

一家小墨表现灰常不错的公司,只是被问到这个问题是略显尴尬:你有技术类的博客么?

恩………………没有

PS:我写在worktile里了,不想给你看啊!

于是我决定把博客类的文章和学习新技术的比较整理到zcool的文章页来,至于能整多少篇?!

沃太富!


另一家公司不知道是不是由于等了太长的时间,导致大脑缺氧,智商不在线,完全体验被推土机碾压的感受~

一、关于框架

推土机:你们用什么框架开发

M:angularjs

推土机:为什么不用react

M:综合考虑比对我们的系统更适合用angularjs

推土机:angularjs能做的react都能做,react 4w多的受众,angular才1w,吧啦吧啦吧啦……

PS:后面听不懂了


二、关于less

推土机:css用什么工具

M:less

推土机:winless用么

M:用

推土机:运算相关应用你怎么理解

M:what

推土机:@

M:*&&*@#…………@&&

推土机:你用less做什么

M:写样式啊

推土机:吧啦吧啦吧啦……

PS:回去查了一下才反应过来他应该是想要问@定义的属性相关的组合嵌套使用,专业名词是硬伤。


三、关于jq

推土机:jq插件写过么

M:写过

推土机:生命周期怎么定义的

M:*&&*@#…………@&&

推土机:所有插件都有什么周期

M:……

PS:需要时触发绑定,不需要时解绑呗,当时又被绕进去了。

回去一查不知道他说的是不是react组件的生命周期。


还有一些其他的,撇下不谈,

就react这个最近大热的家伙的被推崇,还有之前一直被我们钟爱的angularjs被嫌弃的事发表一些议论:

*/


注意以上都是废话,要说的从这里开始:

粗略的认识一下react,并且扒一扒它和angular的关系。

3c975955f21da8012193a3442fa3.jpg

其实之前虽然看了一些react的教程,其实对react到底能做些什么还不是很清楚,也不明确它和我们一直用的angularjs的关系和区别,才会被质问的哑口无言。

回去科普了一下,觉得我需要为没有给angular君做成合理的辩解和维护表示深深的歉意。


React的唯一目标就是构建高性能的用户接口。开发React就是为了解决其他Javas cript框架都未能解决的一个问题-高效地渲染大型数据集。它采用了虚拟文档对象模型(DOM)和拼接机制,这样,每一次对网页做了更改后,React就只更新与更改相关的部分,而不需要重新对整个站点进行渲染。


Angular的指令(Directive)用于数据驱动显示,通过它来编写显示模版相当容易,这是使用Angular的一大好处。当你为数据构建UI时,使用Angular是非常直接的。对于数据展现而言,只要放弃对某些环节的控制,你就能以一种更直观的方式,给用户界面带来更少的代码以及“显而易见”的感觉。然而,React趋向于由你提供自定义函数来驱动数据的展现。这通常意味着,在数据被通过代码融入DOM前,你得自己定义你的数据将如何被展现。这使得在尝试决定某个元素具体该如何被渲染时,逻辑上会出现一定的断层。


虽然Angular的数据的表达能够非常紧凑, 但是渲染大型数据集依旧被证明是一个痛点. 由于双向数据绑定需要监听每一个可变元素, 数据量变大就会带来显著的性能问题. React, 在另一方面, 使用虚拟DOM来跟踪元素的变化. 当检测到变化时, React会构建一个针对DOM变化的补丁, 然后应用这些补丁. 由于不必在每个元素每次变化时重新渲染整个巨大的table, React相对于其他Javas cript框架有显著的性能提升.


AngularJS和React还有一个不同点在于它们所选择的架构。

最初AngularJS使用了MVC(模型-视图-控制器)模式构建, 然后逐渐演化成了MVVM(模型-视图-视图模型)-MVC混合架构。

React却是另一方面, 它的关注点只在MVC模型的"V"上 – 它被设计用来展现数据, 而将其他方面交由应用架构中编程人员选择的其他组件负责. 有一件值得注意的有趣的事是, 由于这样的架构选型, AngularJS的某些棘手的组件完全可以通过React来增强。


如果应用时常要处理大量的动态数据集,并以相对简便和高性能的方式对大型数据表进行显示和变更,React是相当不错的选择。

但是React不像AngularJS那样包含完整的功能,举例来说,React没有负责数据展现的控制器(Controller)层。


两者最大的区别就是轻和重的区别,建议就是,大访问量轻逻辑的页面用React,小访问量重逻辑的页面用Angular。


Angular是真正的大而全的framework,他有自己一套思路,基本你follow这个思路往里面填代码就OK。


React是一个简短有力的library,他只负责解决你某个单一的“痛点”。


还是同事说的对:react 和 angular 没有明显的高下之分,而是应用场景的不同。 


第一篇文章写的有点乱~


0
举报
|
1
分享
评论
用户头像
评论你的想法~
表情
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
新能源腊八节海报
宠物纪念相册H5模板系列 · 温馨治愈系 · 三款主题
国画水墨江南山水画装饰画电视背景墙装饰画
 ps常用偷懒笔刷
love玫瑰花
头发1
校园文化宣传栏
彩灯_花灯_春节彩灯_春节花灯_马年彩灯_马年花灯
人物运动系列插画
我要奋斗
中秋佳节花好月圆
炫光
苏门答腊虎母子插画
小青龙IP吉祥物系列插画设计
浙江省区位分析图
乐陶创意体验工坊标志设计
黑白荧光色实验性风格|个人作品集排版简历模板
国画水墨人物水墨画放牛娃画江南风景乡村墙绘素材
中国风书法汉字字体设计其他
船坞民宿概方案
女生半身插画
香盒包装设计国风国潮通用香礼盒
玫瑰
二十四节气图片之霜降
木纹贴图设计师常用
你可能喜欢
大家都在看
登录注册