• JavaScript框架的超简史



    640?wx_fmt=jpeg

    框架已经走过了很长的路,任何新的开发人员不仅要面向学习语言,还要选择框架来首先学习。

    今天的选择是在相对较短的时间内进行一些令人难以置信的创新的结果。就在最近的2004年,Google发布了Gmail,它被认为是我们今天知道的第一款单页应用程序。

    如果您刚刚开始学习JavaScript,那么您可以在适当的时候出现,但如果您想在浏览器中做任何有趣的事情,并不总是有太多的选择和灵活性。

    动态HTML

    在2000年初,JavaScript大部分时代还处于起步阶段,主要用于对页面进行基本更改。亮点包括鼠标悬停,下拉菜单和滚动文本 - 开发人员认为理所当然的东西是CSS的强大功能。

    那时候,Internet Explorer在网络浏览器领域占据主导地位(我知道,很奇怪吧?),并且自1999年以来,微软为其自己的电子邮件产品Outlook开发了一个包装。可爱但令人生畏的XMLHttpRequest对象最终在各种浏览器中得到了标准化,并成为我们今天如何体验大部分Web的门户。

    最重要的是,这个XMLHttpRequest允许将请求发送到服务器,并处理响应,而无需刷新浏览器或执行完整的往返。在此之前,诸如点击标签或发布表单等意味着服务器处理了该请求,并决定如何呈现响应,并且浏览器将旋转并最终显示结果。

    开发人员跳上了功能,并看到了在网络上创建真正的桌面替换应用程序的潜力。异步JavaScript和XML,缩写为AJAX,是描述这种新发现能力的措词。

    jQuery

    jQuery在技术上并不是第一个JavaScript框架,但它的流行度在2006年发布之后爆炸式增长.jQuery旨在解决开发人员面临的web浏览器实现中细微差异所面临的许多问题,并将开发人员想要的大部分功能清洁和容易学习的框架。

    有了构建能够利用Web的便利性的应用程序的潜力,开发人员可以构建更大,更大的解决方案来测试jQuery的可维护性。像Gmail这样的产品已经证明了可以实现的目标,但显然可能需要更多的企业友好工具。

    Backbone&AngularJS

    2010年,Jeremy Ashkenas发布了Backbone,这是第一个旨在创建单页应用程序的框架。Jeremy已经看到了一个巨大的jQuery应用程序可能变得多么混乱,并希望有一个更清晰的方法来纠正数千个选择器和交织事件处理程序。有趣的是,Backbone并不需要jQuery,它是一个独立的框架,但是如果存在jQuery,可以启用某些功能。

    与此同时,Adam Abrons和Misko Hevery创建了AngularJS,当Hevery在公司工作时,不久后受到Google的关注。Angular是第一个为前端应用程序开发提供完整架构的框架。

    AngularJS的主要功能之一是双向数据绑定,并提供了将模型数据绑定到HTML标记并实时更新的方法。开发人员称这种“automagic”。Angular也支持依赖注入和创建可重用组件的能力。

    Knockout, Meteor, React

    Knockout是另一个为双向数据绑定提供解决方案的框架,尽管它只提供了AngularJS的一小部分功能。流星也是如此,但在2013年,Facebook发布了其React框架,并且自此获得了巨大的人气。

    许多新开发人员首先听到React并将其作为他们的选择框架。尽管如此,React的学习曲线相对陡峭,但它也从优秀的文档和庞大的社区中受益。


    对于开发者来说,看到框架试图解决前辈的问题的方式非常有趣。我认为Angular(当然是最新的版本)与React有很多共同之处,并且他们都与Vue这个新的孩子共享了共同的目标。

    另一个日益重要的考虑是这些框架能够轻松支持移动目标。Ionic和React Native已被证明是相当可观的参与者,因为团队试图将JavaScript作为一种语言进行标准化:服务器端使用NodeJS,桌面和移动浏览器,并在其他框架的帮助下针对本地设备。


    总之,JavaScript是一门伟大的语言,通过这些框架,几乎任何设备上都可以实现。


  • 相关阅读:
    Good Bye 2014 B. New Year Permutation(floyd )
    hdu 5147 Sequence II (树状数组 求逆序数)
    POJ 1696 Space Ant (极角排序)
    POJ 2398 Toy Storage (叉积判断点和线段的关系)
    hdu 2897 邂逅明下 (简单巴什博弈)
    poj 1410 Intersection (判断线段与矩形相交 判线段相交)
    HDU 3400 Line belt (三分嵌套)
    Codeforces Round #279 (Div. 2) C. Hacking Cypher (大数取余)
    Codeforces Round #179 (Div. 2) B. Yaroslav and Two Strings (容斥原理)
    hdu 1576 A/B (求逆元)
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352070.html
Copyright © 2020-2023  润新知