2017年最值得学习的前端框架和技术

2017年最值得学习的前端框架和技术

推荐一个前端学习群606721798这里每天晚上20:00都有一节【免费的】前端直播课程,都是纯干货分享,

JavaScript 的普及造就了一个非常活跃的技术,框架和库的生态系统。 这个生态系统不断涌现多式多样的框架和技术,对许多人来说都是高度的混乱。 那么你应该关注什么样的技术呢?

你应该在哪里方面投入时间来获得最大收益呢? 目前公司招聘哪些技术栈呢? 哪些技术增长潜力最大呢?

现在最重要的技术是什么?这篇文章高度概括了你需要知道的内容。

记住,当你在学习一些实际的代码时,您可以在 Codepen.io 上交互式地执行代码。如果你还在学习 ES6 ,您可以看看如何使用 Babel REPL 进行转译。

JavaScript & DOM基础知识

2017年最值得学习的前端框架和技术

在尝试以 Javscript 为生,进行工作之前,您应该对 Javascript 的基础知识有深刻的了解:

  • ES6 :当前最新版本的 JavaScript 是 ES2016(又名 ES7 ),但很多开发人员还没有正确学习 ES6 。是时候学习是 ES6 要点 了: Arrow functions(箭头函数) ,rest(剩余参数) / spread(扩展操作符) ,default parameters(默认参数) , concise object literals(对象字面量) ,destructuring(解构),解构等等…

  • Closures(闭包) :了解 JavaScript 函数作用域的基本特性。

  • 函数 和 pure functions(纯函数):你可能以为你已经很好地掌握了函数,但是 JavaScript 有一些技巧,您需要了解 纯函数 来掌握函数式编程。

  • Functional programming basics(函数式编程基础) :函数式编程通过组合数学中的函数来生成一个大的程序,避免共享状态和可变数据。多年以来,我还没有看到一个大量使用函数式编程的 JavaScript 应用程序。是时候掌握基本原理了。 (愚人码头注:可以看看知乎上的这个回答:https://zhihu.com/question/28292740/answer/40336090)

  • Partial application(局部应用) 和 Curry(柯里化)

  • Builtin methods(内置方法) :学习标准的数据类型 (特别是 arrays , objects , strings , 和 numbers )。

  • Callbacks(回调): 回调是一个函数,当另一个函数有结果就绪时立即执行。 就像你说,“做你的工作,做完后打电话给我。”

  • Promises : promise 是处理未来值的一种方式。当函数返回 promise 时,您可以使用 .then()方法附加回调,这个回调将在 promise resolves时运行。resolved 值被传递到你的回调函数中,例如:

doSomething().then(value => console.log(value));

  • Ajax & server API calls (Ajax 和 服务器API调用) : 那些有趣的应用程序最终需要与网络服务器通信。 你应该知道如何与 API 进行通信。

  • Classes (注意: Avoid class inheritance(避免类继承)。查看 How to Use Classes and Sleep at Night(如何使用类才能晚上睡个好觉).)

  • Generators & async/await 在我看来,最好的异步代码的写法就是用写同步代码的方式去写异步代码。不可否认这些都存在学习曲线,但一旦你学会了,代码将更容易阅读。

  • Performance(性能)RAIL — 从 “PageSpeed Insights”> & “WebPageTest.org” 开始,他们会给你一些建议

  • Progressive Web Applications (PWAs) : 查看 “Native Apps are Doomed” & “Why Native Apps Really Are Doomed”

  • Node & Express: Node 允许你在服务端运行 JavaScript ,这意味着您的用户可以将数据存储在云中并随时随地访问。而 Express 是 Node 社区最为流行的 Web 框架。

工具

  • Chrome Dev Tools:DOM inspect & JS debugger: 最为好的调试工具,虽然 Firefox 也有很多非常酷的工具,你也可以去体验一下。

  • npm:JavaScript 语言公然的开源包仓库库。

  • git & GitHub : 分布式版本管理系统,随时跟踪你源代码的变化。

  • Babel :用于将 ES6 代码转译到 ES5 以使之能够兼容老版本浏览器。

  • Webpack : 最流行的标准 Javascript打包工具,通过一个简单的配置文件,就能快速让项目运行。

  • AtomVSCode,或者WebStorm+vim: 你需要为自己选择一个合适的编辑器来辅助你快速开发。Atom 和 VSCode 是当今最流行的 JS 编辑器。 Webstorm 是另一种解决方案,它对质量工具的支持非常强大。我建议学习 vim ,或至少加入到你的收藏书签,因为迟早,你需要在服务器上编辑文件,掌握 vim 是最简单的方法 – vim 安装在几乎所有的 Unix 兼容的操作系统,通过 SSH 终端连接可以很好的运作。

  • ESLint:: 尽早发现语法错误和代码风格问题。除了代码评审和TDD之外,这是你可以做的第三件事,尽量减少代码中的Bug。

  • Tern.js:标准 JavaScript 类型的推理工具,这是我目前最喜欢的类型相关的 JavaScript 工具 – 不需要编译步骤或注释。我踢掉了其他相关工具,Tern.js 提供了大部分的功能,并且几乎没有为 JS 使用静态类型系统的成本。

  • Yarn: 类似于npm,但是安装起来更为可靠快速。

  • *::静态类型的JavaScript。除非你学习 Angular 2+,否则是完全可选的。如果你不使用 Angular 2+ ,你应该在选择学习之前要仔细评估。我非常喜欢它,我很钦佩 TypeScript 团队的出色工作,但是你需要知道一些权衡。必读:“关于静态类型的惊人秘密” 和 “你可能不需要 TypeScript” 。

  • Flow*:: JavaScript静态类型检测工具,可以阅读 “TypeScript vs Flow” 来对于这二者有个大概的了解,请注意,我让 Flow 来反馈给我的 IDE 有一些困难,即使使用Nuclide。

React

2017年最值得学习的前端框架和技术

React 是个专注于构建用户界面的 JavaScript 库,由 Facebook 创建。它基于单向数据流的设计思想,也就意味着对于每个更新周期:

  1. React 接受组件的输入作为 props,并有条件地渲染 DOM 更新,如果数据已经改变了 DOM 的特定部分。在重渲染阶段发生的数据变化并不会立刻触发重渲染,而是在下一个绘制阶段的时候才会进行重渲染。

  2. 事件处理阶段 – 在渲染 DOM 之后,React 侦听和事件,将事件委托给其 DOM 树根(为了更好的性能)的单个事件侦听器。 你可以监听这些事件并更新响应中的数据。

  3. 对于数据的任何变化都会重复步骤1。

这种单向数据流与双向数据绑定形成对比,其中对 DOM 的改变可以直接更新数据(例如,如在 Angular 1和 Knockout 的情况下)。 使用双向绑定,在 DOM 渲染过程(称为 Angular 1 中的摘要循环)中对 DOM的 更改可能会在绘制完成之前重新触发绘图阶段,从而导致回流和重绘 – 从而降低性能。

React 没有规定数据管理系统,但推荐使用基于 Flux 的方法。 React 的单向数据流方法借鉴了函数式编程和不可变数据结构的思想,改变了我们对前端框架架构的思考方式。

有关React&Flux架构的更多信息,请阅读 “The Best Way to Learn to Code is to Code: Learn App Architecture by Building Apps”。

  • create-react-app *:开始使用 React 的最快方法。

  • react-router *:React 的简单路由。

  • Next.js *:简单的通用渲染和路由 Node & React 。

  • velocity-react *:React的动画 – 允许您使用 VMD – bookmarklet 在页面上进行交互式视觉运动设计

Redux

Redux 为应用程序提供事务性,确定性的状态管理支持。在 Redux 中,我们遍历操作对象流,以减少到当前应用程序状态。要了解为什么这很重要,请阅读 “10 Tips for Better Redux Architecture”。要开始使用 Redux,请查看 Redux 创建者 Dan Abramov 的优秀课程:

  • “Getting Started with Redux”

  • “Building React Applications with Idiomatic Redux”

Redux 是强制性学习,即使你从未使用 Redux 作为实际项目。

为什么?因为它会给你很多实践,并告诉你纯函数的价值所在,并教你如何将通用函数 reducers,这是一种通用的函数,用于遍历数据集合并从中提取一些值。Reducers通常是非常有用的,以至于Array.prototype.reduce已添加到 JS 规范。

Reducers 不仅仅对于数组是重要的,同时学习使用Reducers 的新方法本身也是有价值的。

  • redux-saga *:Redux 的同步样式的副作用库。使用它来管理I / O(例如处理网络请求)。

Angular 2*

2017年最值得学习的前端框架和技术

Angular 2 是 Google 广受欢迎的 Angular 框架的继承者。 因为它疯狂的人气,掌握它会使简历看起来很棒 —— 但我仍旧建议优先学习 React 。

我喜欢 React 超过 Angular 2+,因为:

  • React 更简单

  • React 很受欢迎,许多工作都需要它使用(Angular 2+也是)

为此,我推荐学习 React,但我认为 Angular 2+ 严格可选*。 如果你对 Angular 2+ 有强烈的偏好,那么你可以随意选择 React 或者 Angular 2+。 首先学习 Angular 2+,并考虑 React 可选。 这两种情况都会让你受益,并且在你的简历上看起来很不错。

无论你选择哪一个,尽量将精力集中学习和使用你所选择的那个,至少6个月 – 1年后,再去学习另一个。 真正掌握它们需要很多实践。

观察中的框架

Vue.js * 在 GitHub 上有大量的 stars 和 下载。如果继续下去,它将在 2017 年能做得更好,但我认为在未来的一年左右的时间里,我不认为它不会超越 React 或 Angular(两者都快速增长)。建议学习了 React 或 Angular 后学习 Vue.js 。

MobX * 是一个很棒的数据管理库,已成为 Redux 的流行替代品。它也在快速增长,我预计在 2017 年会更好。对于大多数应用来说,我更喜欢Redux,但在某些情况下,MobX是更好的选择。例如,如果页面上有成千上万个动态 DOM 对象,MobX 可能会表现得更好。另外,如果你的应用程序工作流都很简单,而且你不需要事务性的、确定性的状态,那么你可能就不需要 Redux 了。MobX 无疑是一个更简单的解决方案。建议你在学习了 Redux 之后,再学习 MobX 。

猜你喜欢

转载自blog.csdn.net/dashujudaka/article/details/80724040