快捷搜索:
来自 新京葡娱乐场网址 2019-11-10 15:45 的文章
当前位置: 67677新澳门手机版 > 新京葡娱乐场网址 > 正文

本条锅作者不背,十温火爆的JavaScript框架和库

Angular说:这个锅我不背

2016/05/30 · JavaScript · 2 评论 · AngularJS, React

本文作者: 伯乐在线 - 亚里士朱德 。未经作者许可,禁止转载!
欢迎加入伯乐在线 专栏作者。

JavaScript 框架和库可以说是开源项目中最庞大也是最累的类目了,目前在github 上这一类的项目是最多的,并且几乎每隔一段时间就会出现一个新的项目席卷网络社区,虽然这样推动了创新的发展,但不得不说苦了前端的开发者们。因此本文罗列出了一些优秀的 Javascript 框架和库的特及其在 github 上的 star 数,旨在为各位开发者提供一些参考。

楔子

最近月影大神翻译的一篇文章很火——《别责怪框架:我使用 AngularJS 和 ReactJS 的经验》,标题看似客观,不过先扬后抑,借黑Angular之际狠赞了一下React。

看完之后也让我有感而发。写这篇文章的目的,并不是想反作者之道,褒Angular贬React,只是希望读者抛开个人情绪,对两者(或者Angular?)有一个更客观地认识。

图片 1

ReactJS与Angular

还记得一年前刚接触Angular的时候感觉既惊喜又恐惧。惊喜的是双向绑定、指令…这些功能太炫酷了,恐惧的是感觉是在重新学习一门新的语言,如果说小米重新定义了手机的话,那么Angular应该是重新定义了javascript。

它的模块功能以及依赖注入很像AMD规范的requirejs,它的视图数据绑定更像是DOM操作升级版,它的路由功能又与backbone有异曲同工之妙,内置的$q$http服务很好的解决了异步通信问题,不和jquery冲突的同时内置了类似jquery风格的原生DOM操作方式…最难能可贵的是,它还提供了单元测试和端到端的解决方案。

而对ReactJS我还只停留在hello world的层次,曾经在知乎上看到有人评价react的时候说是因为Angular的指令系统太难学,所以搞了一套这个玩意,不知真假。参考官网宣传及各种文章对react的吹捧,觉得优点应该有3个吧:

1、ReactJS(Star: 59989,Fork: 10992)

组件化

Angular的指令完全能实现组件化,支持嵌套和数据绑定,它的依赖注入使得引用也非常方便。

主页:https://facebook.github.io/react

虚拟DOM提升性能

PC端上就现代浏览器内核的渲染性能而言,用Angular没出现过什么性能问题。

移动端在操作比较多的DOM时,低端机上会出现卡顿。不过还是有优化方案的,而且Angular本身也是不提倡频繁、大量的操作DOM,比如HTML游戏。

图片 2

React Native

我看好React的原因很大程度在于它,这种跨平台能力还是很有价值的。这一点也是可以秒杀Angular的,不过目前还不了解是否有成熟的大型应用~

React.js(React)是一个用来构建用户界面的 JavaScript 库,主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。

解决方案

对于文中所提问题,我以自己对Angular的粗浅了解,花了几分钟,试着解答了一下~

1.改变 URL 的时候不重新加载 controller 或者渲染基础模板。

如果认真看了官方文档关于$location服务的介绍之后,要解决这个问题并不难。通过$location服务在hash值中添加url参数,这个参数不在路由中配置就不会刷新controller和视图,同时,又可以通过$location服务来获取它。具体方法我已写在了issue上。

2.想要从一个准备发送给服务器的 JSON 中移除一些空白字段时,发现 UI 中对应的数据也被一并移除了 —— 丫的双向绑定 ╮(╯▽╰)╭。

双向绑定应该是利大于弊的(虽然脏检测机制经常遭人诟病),基本上不再需要手动操作DOM。简化了逻辑,少了很多重复代码,同时也减少了视图与数据层忘记同步带来的错误。

这个问题当然也非常好解决,前提是如果你读过官方文档关于表达式的表述。那就是用用双冒号::可以实现单次绑定,之后操作数据就不会再与视图同步了,或者直接创建一个只含需要属性的新对象更简单,方法很多~

3.当想要使用 ngShow 和 ngHide 来显示一个 HTML 块同时隐藏另一个 HTML 块时,在一瞬间,两者同时显示了。

ng-cloak和loading页,随便选一个即可。

React 特点:

写在最后

很多人都有一种畏难的心理,放弃学习Angular,或者向之前文章作者那样赶鸭子上架地被迫学习,从而变得痛恨,(就像你没有使用过VIM就无法理解为什么它被称作编辑器之神,不知道它是如何依靠“模式”来实现无鼠标操作光标,不知道它的宏之强大…)这其实是一种损失。因为Angular确实是一个优秀的框架,它的优秀不仅仅在于前面我说的那些优点。它不单单是强大的开发框架,更像是饱含了作者设计思想和理念的艺术品(当你阅读完官网开篇介绍的最后一部分:Angular的禅道之时愈发会有此感)。

最后引用罗胖说过的一句话做为文章的结尾。

“我创业之后越来越少负面地区评价一个人和一件事,是因为我清楚地知道,一旦我做出这样一个结论,以我的知识和逻辑能力,我马上会编造一套理由,在自己内心里来论证自己这个判断。而因此的结果就是我从此丧失了对这个人这个事代表的所有现象的好奇心和求知欲,也就是说,我认知的大门就关上了。”

打赏支持我写出更多好文章,谢谢!

打赏作者

  1.声明式设计−React采用声明范式,可以轻松描述应用。

打赏支持我写出更多好文章,谢谢!

任选一种支付方式

图片 3 图片 4

1 赞 3 收藏 2 评论

  2.高效−React通过对DOM的模拟,最大限度地减少与DOM的交互。

关于作者:亚里士朱德

图片 5

微信公众号“web学习社”;js全栈工程师,熟悉node.js、mongoDB。开发者头条top10专栏作者慕课网签约讲师个人博客:yalishizhude.github.io 个人主页 · 我的文章 · 19 ·     

图片 6

  3.灵活−React可以与已知的库或框架很好地配合。

  4.JSX− JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。

  5.组件− 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。

  6.单向响应的数据流− React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

2、AngularJS(Star: 54769,Fork: 27292)

主页:https://angularjs.org

图片 7

Angular JS (Angular.JS) 是一组用来开发 Web 页面的框架、模板以及数据绑定和丰富 UI 组件。它支持整个开发进程,提供 Web 应用的架构,无需进行手工 DOM 操作。 AngularJS 很小,只有 60K,兼容主流浏览器,与 jQuery 配合良好。

3、Vue.js(Star: 43608, Fork: 5493)

图片 8

Vue.js是构建 Web 界面的 JavaScript 库,提供数据驱动的组件,还有简单灵活的 API,使得 MVVM 更简单。

主要特性:

  ●可扩展的数据绑定

  ●将普通的 JS 对象作为 model

  ●简洁明了的 API

  ●组件化 UI 构建

  ●配合别的库使用

4、jQuery(Star: 43432, Fork: 12117)

主页:https://jquery.com/

图片 9

JQuery 是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0 , FF 1.5 , Safari 2.0 , Opera 9.0 )。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种 应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。

5、Meteor(Star: 36691,Fork: 4617)

本文由67677新澳门手机版发布于新京葡娱乐场网址,转载请注明出处:本条锅作者不背,十温火爆的JavaScript框架和库

关键词: