将近4年前,我写了一篇名为《Future of Web and Mobile: HTML5, CSS3 and Javascript》的博文,其中提到了Javascript的出现以及jQuery、Knockout等JavaScript框架的爆炸式增长。快进到现在,我发现现代Web开发将再次发生翻天覆地的变化。大量的信息可能会让人感到困惑,尤其是对于初学者而言。第一个原因是Angular2和ReactJs等新框架的出现,它们使用了尚未完全确定的ECMAScript6特性。还有更多工具可用于将ES6代码转换为普通的旧JavaScript代码,即ES5。我概述了一系列我们应该学习的编程语言/工具,以了解不可阻挡且瞬息万变的现代Web开发。JavaScript是唯一一种所有浏览器都能理解的编程语言,是前端开发的中坚力量。JavaScript也称为ECMAScript、ES5。在深入了解其他语言之前,了解这门编程语言非常重要。ES6这是Javascript语言的扩展,很多浏览器都在实现ES6。好消息是,即使是现在,你也可以开始编写ES6代码,因为你可以使用Babel等转译器(transpiler)将ES6代码转换为ES5代码。通过这些并了解新功能是很好的。但是,不要挖得太深,因为它们很容易发生变化。Babel这是最流行的ES6到ES5转译器之一。此外,许多框架都推荐它,例如React。要即时将ES6代码转换为ES5代码,可以在https://babeljs.io/repl/获得REPL。请注意,Babel不仅仅是一个ES6到ES5的转译器。它也是一个JSX到JavaScript的转换器。不知道什么是JSX?然后看下面。NodeJSNodeJS是一个服务器端平台,允许您使用JavaScript语言构建后端。我为什么要提到NodeJS?这是因为,即使您对后端开发不感兴趣,许多前端工具也依赖于NodeJS。至少熟悉节点及其命令行工具。NPMNPM是节点的包管理器。什么pip之于Python,rubygems之于Ruby,Maven之于Java。了解如何安装/删除/升级包,尤其是package.json文件结构。Grunt或Gulp是在Node平台上运行的两个最流行的任务运行器。从技术上讲,它们是npm的包。它们允许您自动执行许多前端任务,例如linting源文件、连接、缩小、部署等等。Bower这是前端库本身的包管理工具。想要将Jquery添加到您的应用程序中吗?就像使用bower安装jquery一样简单。以上工具对于基本的前端开发来说已经足够了。不过下面我也想说说目前最流行的两个框架,即React和Angular。ReactJsReactJs是构建视图最好的前端库。请注意,它不仅仅是MVC中的V,因此无法与Angular等框架进行比较。ReactJs是用ES6编写的,可以使用Babel转换为ES5。它还使用JSX,也可以使用Babel将其转换为JavaScript。WebPack或Browserify都是著名的模块打包器。他们可以获取js源代码,找出正确的依赖关系,并发出驱动整个应用程序的javascript文件。我更喜欢WebPack。单击此处阅读有关WebPack的信息。Flux或ReduxReact组件按层次结构排列。大多数时候,数据模型遵循层次结构。在这种情况下,Flux不是很有用。但是,有时您的数据模型不是分层的。当您的React组件开始接收外部props,或者您的少量组件开始变得非常复杂时,您可能想尝试Flux。Immutable.jsImmutable.js提供了一组数据结构,可以帮助解决构建React应用程序时的某些性能问题。这是一个很棒的库,您可能会在您的应用程序中经常使用它,但是当您担心性能影响时,它就完全没用了。Angular2Angular2是JavaScript中最好的MVC框架之一的下一个版本。它已经完全重新设计并且具有陡峭的学习曲线。完全支持双向数据绑定。选择Angular2开发时慎重评估。TypeScriptAngular2推荐将TypeScript作为首选的编程语言。我对TypeScript不是很熟悉,但我认为它为Javascript的动态特性添加了静态类型。***,我相信它只是一个转译器。Serviceworkers的实验性API。它就像浏览器用来做各种工作的后台线程。我认为它还增加了对离线浏览的支持。FetchAPI和PushAPI请自行阅读链接。因为到目前为止,我自己对此知之甚少。翻译链接:http://www.codeceo.com/article/15-teches-web-developer-need.html英文原文:ThingstolearnforModernWebDevelopment
