• 奥尼尔晒出自己修脚视频:该死,她不得不带个口罩 2019-03-15
  • 《在人间》第153期:南疆十日 2019-03-13
  • 立秋日 滇池上空出现七彩云霞 2019-03-13
  • 春运面孔:她们让回家的路更温暖 2019-03-03
  • 端午假期国内游客超8900万人次 全域旅游见成效 2019-03-03
  • 上海天天彩选4走势

     找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 361|回复: 20
    打印 上一主题 下一主题

    天下釆彩与你同行资料: 2017年最佳JavaScript框架,库和工具

    [复制链接]

    上海天天彩选4走势 www.rkbqy.com 12

    主题

    84

    帖子

    61

    金币

    团长

    Rank: 10Rank: 10Rank: 10

    积分
    282

    新兵

    跳转到指定楼层
    楼主
    发表于 2018-11-16 11:55:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    JavaScript的框架、库和工具的冒出似乎有点超出巨匠的想象,截止到2017年5月,在GitHub上搜索JavaScript项目,你会发现其已经跨越了110万;npmjs.org上有50万个可用的软件包,每月下载量近100亿次。

    为了帮忙巨匠更好地选择JavaScript框架、库和工具,本文将对流行的框架、库和工具进行一些对比,可是由于篇幅有限,可能其实不克不及包含到所有的框架、库和工具,所以欢迎巨匠在下方弥补评论,共同学习进步。

    为了让巨匠的讨论在共同的水平线上,首先我们先来确定一下框架、库和工具的概念??赡苊扛鋈硕哉馊叨加凶约旱睦斫?,可是本文是基于以下的概念来进行讨论的。



    库是有用功能的有组织的集合??獾牡湫凸δ馨胫米址?、日期、HTML DOM元素、事件、Cookie、动画、网络请求等。每个函数将值返回给挪用应用程序,可是你可以从中选择参数来应用。如果用汽车来做比方,那就是你可以任意使用所有的零部件来搭建汽车,可是你必须自行构建引擎。

    库通常是提供一个更高的抽象层,平滑的实现细节和矛盾。例如,Ajax通常依赖于XMLHttpRequest API,可是由于各浏览器之间的差别,你可能需要修改几行代码来实现??墒强饪梢蕴峁┮桓龈虻サ腶jax()函数,让程序员更专注于高条理的业务逻辑。

    因为库没必要在意更多的细节,所以开发时间可能会缩短20%,可是它也不是没有缺点的:

      库内的毛病可能难以定位和修复

      开发团队不克不及包管快速发布补丁

      修补程序可能会更改API,并对您的代码进行重大更改。

    框架

    框架是一个应用程序的骨架,它要求你以特定的体例措置软件设计,并在某些点插入自己的逻辑。 通??蚣芴峁┦录?、存储和数据绑定等功能。 如果我们还是用汽车了来做类比,那么框架就是一辆车的底盘、车身和发念头,为了让车辆始终连结运行状态,你可以添加、删除或修改某些组件。

    框架通?;崽峁┍瓤飧叩某橄蟛?,并且帮忙用户快速构建项目的08%,但它的缺点是:

      如果应用程序超出了框架的规模,那么剩下的20%可能会很难完成;

      框架更新可能很困难 ;

      框架核心代码和概念很少更新,可是同样的事情,程序员往往城市在短时间内发现一个更好的解决体例;

    工具

    工具有助于开发,但其实不是项目的组成部分。 工具包含系统构建,编译器, transpilers,代码朋分器,图像压缩器等。

    工具的应用使得开发过程变得更加容易,例如很多程序员都喜欢将Sass to CSS,因为它提供了代码分手,嵌套,渲染时间变量,循环和函数。 浏览器不了解Sass / SCSS语法,因此在测试和摆设之前,必须使用适当的工具将代码编译为CSS。

    JavaScript框架和库

    jQuery

    jQuery是最经常使用的JavaScript库,它革命性的在客户端开发,将CSS选择器引入到DOM节点检索加链接来应用事件措置程序、动画和Ajax挪用。jQuery近年来备受青睐,对一个很需要JavaScript功能的项目来说,jQuery绝对是一个可行的选择。

    优点:

      散布规模??;

      学习曲线平缓,在线帮忙多;

      语法简洁;

      容易延伸;

    缺点:

      增加了本机API的速度开销

      浏览器兼容性的改良降低了它的重要性;

      用法扁平

      有些行业反馈有很多不需要的使用。

    React

    React可能是去年一年最受关注的库了吧。React声称是一个用于构建用户界面的JavaScript库,它专注于MVC开发的“View”部分,并且可以轻松建立保存状态的UI组件。 它是实现虚拟DOM的第一个库, 内存结构计算差别,有效地更新页面。

    从使用情况来看,React的情况似乎有些欠好,但这是因为它是在应用程序中使用而不是网站,38%的程序员暗示他们正在使用该库。

    优点:

      小巧,高效,快捷灵活;

      简单的组件模型;

      良好的文档和在线资源;

      办事器端渲染;

      处于高速成长期;

    缺点:

      需要学习新的概念和语法;

      构建工具必不成少;

      要求其他库或框架提供Model和Control;

      与修改DOM的代码和其他库不兼容;

    Lodash and Underscore


    Lodash和Underscore提供了数百个功能性的JavaScript实用程序来弥补本地字符串,数字,数组和其他原始对象体例。 它在客户端使用率较低,可是可以在办事器真个Node.js应用程序中使用很频繁。

    优点:

      小而简单;

      拥有优质文档,易于学习;

      与大大都库和框架兼容;

      不扩展内置对象;

      可以在客户端或办事器上使用;

    缺点:

      有些体例只适用于ES2015及更高版本的JavaScript。

    AngularJS 1.x

    Angular最流行的版本是1.x版本,它使用双向数据绑定扩展HTML,同时将DOM操作与应用程序逻辑脱钩。尽管版本2已经发布(固然现在已经到了版本4),可是Angular 1.x仍在开发中。

    优点:

      众多大公司采??;

      以单一的解决方案来生产现代Web应用程序;

      一个解决方案来生产现代Web应用程序;

      MEAN仓库(MongoDB,Express.JS,AngularJS,NodeJS),有众多文档和教程可用来参考;

    缺点:

      学习曲线更加峻峭;

      大代码库

      不克不及升级到Angular 2.x

    Angular 2.x (now 4.x)

    Angular 2.0于2016年9月发布。这是一个完整的重写,它引入了使用TypeScript(被编译为JavaScript)建立的基于??榛榧哪P?。 Angular 4.0版本于2017年3月发布。

    Angular2+和1.0版本截然不合,与其他也不兼容,所以也许谷歌应该给该项目另外起一个名字。

    优点:

      单一的解决方案来生产现代Web应用程序;

      尽管Angular 2+的可用文档较少,但它仍是MEAN仓库的一部分;

      对熟悉静态类型语言(如C#和Java)的人员,TypeScript提供了一些优势。

    缺点:

      更峻峭的学习曲线;

      大代码库;

      不克不及从Angular 1.x升级;

      与1.x相比,Angular 2.x的使用率相对较低;

      尽管是Google的项目,但Google似乎并没有使用它?

    Vue.js

    Vue.js是一个用于构建用户界面的轻量级渐进框架。 该核心提供了一个React-like 的虚拟 DOM-powered层,它可以与其他库集成,也可以支持单页应用程序。

    Vue.js使用HTML模板语法将DOM绑定到实例数据。 模型是在更改数据时更新视图的纯JavaScript对象。 附加工具提供了scaffolding,路由,状态管理,动画等功能。

    优点:

      易于上手,普及度高;

      起点简单,但完成满意度高;

      依赖性小,性能好;

    缺点:

      是一个新项目,所以风险可能会很大;

      依赖开发人员来更新;

      相对同类框架,资源较少;

    Backbone.js

    Backbone.js是提供常见的办事器端框架MVC结构最早的客户端选项之一,它唯一的依赖是由同一开发人员建立的Underscore.js。

    Backbone.js声称是一个库,因为它可以与其他项目集成,但我认为大大都程序员都认为它是一个框架。

    优点:

      体积小,重量轻,复杂度低;

      不添加HTML的逻辑;

      文档丰富;

      采取了许多应用,包含Trello,WordPress.com,LinkedIn和Groupon;

    缺点:

      与AngularJS等相比,抽象度较低;

      需要额外的组件来实现数据绑定等功能;

      新的框架基本已经不再采取MVC架构;

    Ember.js

    Ember.js是基于Model-View-ViewModel(MVVM)模式的框架之一。 它在单个包中实现模板化,数据绑定和库。如果 Ruby on Rails体验的用户,能够迅速熟悉其配置概念。

    优点:

      为客户端应用程序提供单一解决方案;

      程序员可以快速开发—其使用jQuery;

      良好的向后兼容性和升级选项;

      采取了现代Web开发标准;

    缺点:

      与其他正在向较小组件结构移动的框架相比,被认为是单一的;

      峻峭的学习曲线 ;

    Knockout.js

    较早的MVVM框架之一,Knockout.js使用观察者来确保UI与底层数据连结同步,它具有模板和依赖关系跟踪。

    优点:

      小而轻便,无依赖

      支持回溯到IE6

      优质文档;

    缺点:

      较大的项目可能变得复杂;

      成长速度已经放缓;

      使用情况正在下降;

    值得注意,下面这些项目虽然不如上面的受欢迎,但还是值得一试的:

    Polymer- 可以跨浏览器支持HTML5网页组件的库

    Meteor - 一个用于Web应用程序的全栈平台。

    Aurelia - 一种相对较新的,轻量级的跨平台框架

    Svelte - 一个将框架源代码转换为JavaScript的新项目

    Conditioner.js - 一个基于状态自动加载和卸载??榈目?。

    工具:General-Purpose Task Runners

    构建工具可以自动执行各种Web开发任务,例如预措置,编译,优化图像,缩小代码,运行测试等等。所有的任务都可以在一个可执行包中管理,比较受欢迎的工具包含:

    Gulp.js

    Gulp虽然不是第一个工具,可是它是最受欢迎的工具,Gulp使用易于阅读的JavaScript代码,将源文件加载到流中,并在将数据输出到构建文件夹之前通过各种插件管理数据。

    npm

    npm是Node.js包管理器,但其脚本工具可用于运行通用任务。 对具有很少依赖关系的简单项目来说,这是一个有吸引力的选择,可是对复杂的任务来说,它可能就有些有心无力。

    Grunt

    Grunt是第一个实现批量采取的JavaScript任务的工具,但其速度和复杂的JSON配置,使得Gulp异军突起。如今,这些问题解决了,Grunt仍然是一个不错的选择。

    工具:Module Bundlers

    多个JavaScript文件的管理成了程序员们的懊恼,在默认情况下,浏览器文件未被编译,因此依赖关系必须以适当的顺序加载或连接。虽然有各种选项,如ES6??楹虲ommonJS,但浏览器支持究竟结果是有限的,因此Module Bundlers就变得至关重要。

    Webpack

    Webpack支持所有流行的??檠∠?,并已成为React开发的代名词。 虽然它声称是一个Module Bundlers,可是也可以用作通用任务运行程序。

    Browserify

    Browserify支持Node.js使用的CommonJS???,将所有??楸嘁氤傻ジ鲣榔骷嫒莸奈募?。

    RequireJS

    RequireJS是一种浏览器中的??榧釉仄?,它也可以在Node.js中使用。

    Tools: Linting

    “Linting”是阐发你的代码的潜在毛病或偏离语法标准。 有了这种工具,你永远不呈现只有一半括号或者未声明变量的情况。

    ESLint

    ESLint是一种可插拔的Linting工具,每个规则都是一个插件,因此可以根据您的喜好进行配置。

    JSHint

    一个灵活的JavaScript linter,在真正的毛病和迂腐的语法需求之间取得了很好的平衡!

    JSLint

    JSLint是最早的Linter之一,遵循一套严格的默认规则。

    Tools: Test Suites

    在应用程序的编写过程中有一个很重要的步调那就是代码测试。代码测试的工具有很多,如Ava、Tape和Jest。下面,我们就为巨匠介绍最受欢迎的三个选择:

    Mocha

    Mocha是一个JavaScript测试框架,可以在Node.js或浏览器中运行测试。 它支持异步测试,并且经常与Chai配对,以使测试代码能够以可读取的体例表达。

    Jasmine

    Jasmine是一个行为驱动的测试套件,可以在浏览器中自动测试您的UI和交互。

    QUnit

    QUnit是一个单位测试框架,可以通过特定参数检查函数结果。

    Tools: Miscellaneous

    虽然JavaScript比较常见经常使用,可是也其实不是每个程序员都喜欢JavaScript,例如TypeScript,LiveScript和CoffeeScrip这些也可以使得程序员的开发过程很愉快。

    JavaScript-powered HTML的引擎模板有数十种,其中包含Mustache,Handlebars,Pug(Jade)和EJS。但在我而言, 更喜欢保存JavaScript语法(如EJS和doT)的轻量级选项。

    如何自己来编写文档呢?ES2015兼容的文档生成器包含ESDoc,JSDoc,YUIdoc,documentation.js和Transcription。

    写在最后

    如果你想要走在技术的前端,那么React以及和其相关的技术成长标的目的值得关注。如果你想要为Web应用程序选择一个平安的选项,那么你可以考虑Vue.js。

    虽然整体框架现在不再那么受欢迎,可是如果你是要做严格的大型项目结构,AngularJS会是一个不错的选择。虽然,现在大大都人还在使用1.0版本,可是从久远来看,学习一下TypeScript,选择4.0版本会更加平安。

    jQuery虽然在技术新闻中很少被提到,可是它的学习曲线平缓,几乎所有的程序员都可以理解,并且它现在还在积极开发。

    工具的选择会因项目而异,可是不成否定,大大都项目城市选择Gulp和WebPack。每个项目和团队的技能都是不合的,所以你在选择的时候要在有限时间内准确评估。

    最后,永远不要忘记库,框架和工具是可选的! JavaScript在过去的十年中产生了革命性的转变,几乎每隔几个月城市有热门框架的呈现,所以很容易就失落进陷阱之中。所以,在选择时,就要考虑自己的实际需求,也要积极学习新的知识。

    更多内容回复查看:
    游客,如果您要查看本帖隐藏内容请回复
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    7

    主题

    36

    帖子

    16

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    93
    沙发
    发表于 2018-11-16 11:56:36 | 只看该作者
    别BB那么多,老夫写代码只用jquery
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    13

    主题

    44

    帖子

    30

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    126

    新兵

    板凳
    发表于 2018-11-16 11:57:26 | 只看该作者
    vuejs是最好用的MVC框架,没有之一
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    6

    主题

    39

    帖子

    14

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    105
    地板
    发表于 2018-11-16 11:58:11 | 只看该作者
    要兼容pc浏览器,jquery是不二选择。
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    15

    主题

    54

    帖子

    61

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    168

    新兵

    5#
    发表于 2018-11-16 11:58:47 | 只看该作者
    移动端用zepto更佳
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    11

    主题

    46

    帖子

    25

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    138
    6#
    发表于 2018-11-16 11:59:33 | 只看该作者
    老夫就用jQuery
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    12

    主题

    44

    帖子

    30

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    126

    新兵

    7#
    发表于 2018-11-16 12:00:31 | 只看该作者
    老夫写代码只用jquery
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    9

    主题

    49

    帖子

    128

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    141

    小资新兵

    8#
    发表于 2018-11-16 12:01:31 | 只看该作者
    vue是一个新项目,看到这我笑了
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    14

    主题

    41

    帖子

    30

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    114
    9#
    发表于 2018-11-16 12:01:42 | 只看该作者
    jQ还能再战5年
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码

    13

    主题

    53

    帖子

    29

    金币

    连长

    Rank: 7Rank: 7Rank: 7

    积分
    123
    10#
    发表于 2018-11-16 12:02:07 | 只看该作者
    小编一定是高手,知道那么多框架,库,构建工具
    C VC C++ MFC 汇编 函数 脚本 辅助 多开 注入 内存 插件 破解 基址 窗口 大漠 绑定 编程 交流 论坛 实例 源码
    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    VC中文网 - 豫ICP备14012807号|小黑屋|联系客服|金币冲值|上海天天彩选4走势

    GMT+8, 2019-3-22 10:17 , Processed in 0.125000 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 上海天天彩选4走势 返回列表
  • 奥尼尔晒出自己修脚视频:该死,她不得不带个口罩 2019-03-15
  • 《在人间》第153期:南疆十日 2019-03-13
  • 立秋日 滇池上空出现七彩云霞 2019-03-13
  • 春运面孔:她们让回家的路更温暖 2019-03-03
  • 端午假期国内游客超8900万人次 全域旅游见成效 2019-03-03