JS库? 框架? 工具?

这些是什么? 有什么不同?

什么是V anila JS

这只是引用本地(基于标准的,未扩展的)JavaScript的一种方式。

是有用功能的有组织的集合。

典型的库可能包含处理字符串,日期,HTML DOM元素,事件,Cookie,动画,网络请求等的函数。 每个函数都将值返回到调用应用程序,可以根据需要选择实现该值。

可以将其视为汽车部件的选择:

您可以自由使用任何组件来帮助构造可行驶的车辆,但您必须自己制造引擎。

库通常提供更高级别的抽象,可以平滑实现细节和不一致之处。 库可以将开发时间减少20%,因为您不必担心更好的细节。

库中的错误可能很难定位和修复,不能保证开发团队会迅速发布补丁,补丁可能会更改API并导致代码发生重大更改。

例如:jQuery,React,Lodash,下划线,Polymer

框架是应用程序框架。

它要求您以特定的方式进行软件设计,并在某些点插入自己的逻辑。 通常会为您提供事件,存储和数据绑定等功能。

使用汽车的类比,框架提供了工作底盘,车身和发动机。

您可以添加,删除或修补某些组件,以使车辆保持运行状态。

框架通常提供比库更高的抽象级别,并且将帮助您快速构建项目的前80%

如果您的应用程序超出了框架的范围,那么最后20%可能会很艰难,框架更新可能会很困难-甚至不是不可能。

例如:Angular,Vue.js,Backbone.js,Ember.js,Knockout.js

工具有助于开发,但不是项目的组成部分。

工具包括构建系统,编译器,编译器,代码压缩器,图像压缩器,部署机制等。

工具应提供更简单的开发过程。 例如,与CSS相比,许多编码器更喜欢Sass,因为它提供了代码分离,嵌套,渲染时变量,循环和函数。 浏览器不了解Sass / SCSS语法,因此在测试和部署之前,必须使用适当的工具将代码编译为CSS。

例如:Gulp.js,npm,Webpack,Babel,ESLint,Mocha,把手

注意框架可以包含一个库。 库可以实现类似框架的方法。 工具可能是必不可少的。

问题:什么是node.js?