enter image description here

首先我要定义一下我心中的代码框架,因为这个词存在争议。我认为框架是一个库(注:个人不太同意这个说法),它定义了每一个方面或层的结构,使创建应用程序的任务变得更容易。从层上说,我指的是数据库、模型、控制器、视图、表现层、网络,等等......

框架尝试去解决在应用中经常遇到的绝大多数大且已知的问题。它们内置了许多你不需要关心的设计决策,它们同样也有精心制定的指导方针。

好的框架有巧妙的默认值以及遵循约定而不是配置的概念,在这方面做得好的是 Ruby On Rails 框架,同时也是我最喜欢的框架之一。在 JavaScript 领域,头牌 JavaScript 框架是 Angular 和 Ember。

现在我们弄清了这一点,那我就来回答标题的答案:2018年该学哪一个JavaScript框架?

我的答案是:没有。

我来解释一下为什么。

除非你工作中需要你使用一个框架,不要仅仅为了学习而去学一个框架。我在说的是学习如何使用一个框架,这些知识会很快过时。

另一方面,你应该学习框架是如何工作的,这是非常珍贵的知识。如果你学习一个框架的动力是得到一个好的工作,知道框架是如何工作的比只知道如何使用它,肯定给人更深的印象。

仅当你确实需要的时候,才去学习如何使用一个框架。

我想为了成为一个更有市场的开发者,有许多更重要技术的去学:

● 学习JavaScript本身,好的部分和坏的部分以及最近刚添的现代特性;学习如何创建和使用JavaScript中各种各样的数据结构。

● 学习JavaScript的运行时,像Node和浏览器以及它们是如何是单线程的;学习它们的API和各自的边界;学习 Event-Loop;学习 VM 的调用栈。熟悉浏览器的 DevTools。

● 学习客户端和服务端如何共享代码以及预加载数据;学习在浏览器中如何最小化JavaScript加载和如何解析;学习如何按需加载JavaScript。

● 学习函数式编程并且在你需要的地方使用它;学习如何做声明式而不是命令式。

● 学习那些专且精的小JavaScript库,选择使用最小的API的库,不要把重点放在API上,而是关注这些库能让你做些什么。

● 学习如何构建可伸缩的数据API(可以看看GraphQL)

● 学习CSS的强大之处以及使用它如何来减少你应用中的JavaScript代码;学习新的布局属性:Flexbox和Grid;学习响应式设计。

● 学习通过TypeScript(或者Flow)如何在JavaScript加入静态类型,同时你应该把重点放在类型和测试上。

谢谢阅读!

更多文章请关注:

enter image description here

原文:Which JavaScript frameworks should you learn in 2018?