2017年要学习的JavaScript的顶级框架和主题
关于“可选学习”的注意事项
JavaScript 和 DOM 基础
- ES6: JavaScript 的最新版本是 ES2016 (即 ES7),但很多开发人员还没有完全掌握ES6。是时候了解ES6了,至少需要了解下面这些基础的知识:箭头函数, rest参数/spread运算符, 默认参数,简洁的对象直接量表示法,解构等等;
- 闭包: 学习JavaScript的函数作用域是如何发挥作用的;
- 函数 & 纯函数 : 也许你会认为自己已经熟练掌握了函数的功能,但是JavaScript中的函数有一些自己的技巧,而且你需要学习纯函数来应付函数式编程;
- 函数式编程基础 : 函数式编程通过组合数学函数来产生程序,可以避免共享状态和可变数据。在产品级JavaScript应用程序中没有大量使用函数式编程的情况我已经很多年没有见过了。因此,现在是时候掌握函数式编程的基本原理了;
- 部分应用 & 柯里化
- 原生方法 : 学习内置标准数据类型的方法(尤其是 arrays, objects, strings, 和 numbers类型);
- 回调函数 : 回调函数是一个基本函数,它由另一个函数在特定结果发生时调用。回调函数可能会说: “执行你自己的逻辑,在特定事件发生时调用我”。
- Promises机制 : 诺言是用来处理未来返回值的一种方法。如果某函数调用返回一个诺言对象,你可以使用该对象的 .then()方法绑定一个回调函数,它在诺言兑现的时候被调用。 而且,诺言兑现时候的值会传递到你的回调函数比如: doSomething().then(value => console.log(value));
- const doSomething = (err) => new Promise((resolve, reject) => {
- if (err) return reject(err);
- setTimeout(() => {
- resolve(42);
- }, 1000);
- });
- const log = value => console.log(value);
- // Using returned promises
- doSomething().then(
- // on resolve:
- log, // logs 42
- // on reject (not called this time)
- log
- );
- // remember to handle errors!
- doSomething(new Error('oops'))
- .then(log) // not called this time
- .catch(log); // logs 'Error: oops'
复制代码
- Ajax & 服务器API调用: 最有趣的应用最终需要与网络交谈. 你应该知道如何与 APIs通信.
- Classes (note: 避免类继承. 阅读 如何使用类and Sleep at Night.)
- Generators & 异步/等待: 在我看来, 最好的方法编写异步代码看起来同步. 它有一个学习曲线, 但是一旦你学会了它, 代码更容易阅读.
- 性能: RAIL — 开始于“PageSpeed见解” &“WebPageTest.org”
- 渐进式的Web应用程序 (PWAs): 阅读 “原生应用” & “为什么原生应用是失败的”
- Node & Express: Node允许您在服务器上使用JavaScript, 意味着用户可以在云中存储数据并在任何地方访问它. Express最流行的框架为Node.
- Lodash: 一个伟大的, JavaScript的模块化使用, 应用了函数式编程的好东西.导入最后一个功能模块的数据 lodash/fp.
工具
- Chrome开发工具: DOM检查 和 JS调试器:最好的调试器,IMO,虽然Firefox有一些非常酷的工具,你也可能想检查。
- npm: JavaScript语言的标准开源包存储库。
- git & GitHub: 分布式版本管理器 - 跟踪您的源代码随时间的变化。
- Babel: 用于编译ES6以在旧版浏览器上工作。
- Webpack: 用于标准JavaScript的最受欢迎的捆绑包寻找简单的入门工具包/样板配置示例,使事情快速运行)
- 原子, VSCode或 WebStorm + VIM: 你会需要一个编辑器。Atom和VSCode是当今最流行的JS编辑器。Webstorm是另一种解决方案,非常强大的支持质量工具。我建议学习vim,或者至少加上备忘单,因为迟早会需要在服务器上编辑文件,这是最简单的方法 - vim安装在与Unix兼容的操作系统的每一种风格上,在SSH终端连接上运行良好。
- ESLint: 尽早捕捉语法错误和风格问题。在代码审查和TDD之后,您可以做的第三件事就是减少代码中的错误。
- Tern.js: 用于标准JavaScript的类型推理工具,目前我最喜欢的JavaScript类型相关工具 - 无需编译步骤或注释。我已经踢了所有的轮胎,Tern.js提供了大部分的好处,几乎没有一个使用静态类型的JS系统的成本。
- 纱线 *: 与npm类似,但安装行为是确定性的,纱线的目的是要比npm快。
- TypeScript *:JavaScript的 静态类型。 完全可选 ,除非你正在学习Angular 2+。如果您不使用Angular 2+,您应该在选择TypeScript之前仔细评估。我喜欢很多,我欣赏到TypeScript团队的出色工作,但是您需要了解的权衡。 必读: “关于静态类型的惊人秘密” 和 “你可能不需要TypeScript”。
- Flow *: JavaScript的静态类型检查器。请参阅 “TypeScript vs Flow” ,以便对这两者进行令人印象深刻的客观比较。请注意,我有一些困难,让Flow给我很好的IDE反馈,即使使用 Nuclide。
React
- React 采用组件作为props 和有条件地呈现DOM更新如果数据改变了DOM的特定部分. 数据更新在此阶段不能再触发器渲染,直到下一个绘画阶段.
- 事件处理阶段 — 在DOM渲染之后, React 在DOM树的根中自动将DOM事件委托给单个事件侦听器(为了获得更好的性能). 你可以侦听事件和更新数据的响应.
- 使用任何更改数据, 这过程将重复执行步骤1.
- create-react-app *: 开始使用React的最快方式。
- react-router*: React的死路由简单。
- Next.js *: 死亡简单通用渲染和路由节点和反应。
- velocity-react*: 动画 - 允许您使用VMD书签在您的页面上进行交互式视觉运动设计。
Redux
- “Redux入门”
- “用惯用的Redux建立应用程序”
Angular 2+*
- 这更简单,
- 它非常受欢迎,用于大量工作(Angular 2+)
RxJS *
- import { Observable } from 'rxjs/Observable';
- // then patch import only needed operators:
- import 'rxjs/add/operator/map';
- import 'rxjs/add/observable/from';
- const foo = Observable.from([1, 2, 3]);
- foo.map(x => x * 2).subscribe(n => console.log(n));
2017年要学习的JavaScript的顶级框架和主题的更多相关文章
- 2017值得一瞥的JavaScript相关技术趋势
2017值得一瞥的JavaScript相关技术趋势从属于笔者的Web 前端入门与工程实践,推荐阅读2016-我的前端之路:工具化与工程化获得更多关于2016年前端总结.本文主要内容翻译自,笔者对于每个 ...
- JavaScript跳出iframe框架
一.window.top top属性返回最顶层的先辈窗口. 该属性返回对一个顶级窗口的只读引用.如果窗口本身就是一个顶级窗口,top属性存放对窗口自身的引用.如果窗口是一个框架,那么top属性引用包含 ...
- 近期流行的JavaScript框架与主题
[新年快乐]2017年你应该关注的JavaScript框架与主题 2017-01-01 王下邀月熊 JavaScript JavaScript的繁荣促生了很多优秀的技术.框架与工具库,这空前的繁荣也给 ...
- JavaScript客户端MVC 框架综述
简介 15 年前,许多人都使用 Perl 和 ColdFusion 之类的工具构建网站.我们经常编写可以在页面顶部查询数据库的脚本,对数据应用必要的转换,以及在同一个脚本底部显示数据.这类架构适合于向 ...
- Atitit.js javascript的rpc框架选型
Atitit.js javascript的rpc框架选型 1. Dwr1 2. 使用AJAXRPC1 2.2. 数据类型映射表1 3. json-rpc轻量级远程调用协议介绍及使用2 3.1. 2.3 ...
- javascript获取iframe框架中页面document对象,获取子页面里面的内容,iframe获取父页面的元素,
javascript获取iframe框架中,加载的页面document对象 因为浏览器安全限制,对跨域访问的页面,其document对象无法读取.设置属性 function getDocument(i ...
- CSS+Javascript的那些框架
CSS CSS 制作框架 SASS http://www.oschina.net/p/sass Blueprint http://www.oschina.net/p/blueprintcss Ela ...
- github搭建个人博客 hexo框架 next主题
之前就想搭建自己的博客,现在终于得以实施. 参考了多篇博客,然后又在虚拟机了往往复复试了好多次, 现在基本搭建完毕. 我是基于hexo博客框架, next主题搭建的博客, 静态网页. 大体就是, ...
- 【译】2017年要学习的三个CSS新特性
这是翻译的一篇文章,原文是:3 New CSS Features to Learn in 2017,翻译的不是很好,如有疑问欢迎指出. 新的一年,我们有一系列新的东西要学习.尽管CSS有很多新的特性, ...
随机推荐
- Linux驱动技术(五) _设备阻塞/非阻塞读写
等待队列是内核中实现进程调度的一个十分重要的数据结构,其任务是维护一个链表,链表中每一个节点都是一个PCB(进程控制块),内核会将PCB挂在等待队列中的所有进程都调度为睡眠状态,直到某个唤醒的条件发生 ...
- JavaScript嗅探执行神器-sniffer.js,你值得拥有!
一.热身--先看实战代码 a.js 文件 // 定义Wall及内部方法 ;(function(window, FUNC, undefined){ var name = 'wall'; Wall.say ...
- 使用bootstrap table小记(表格组件)
前言 新的一年悄然到来,生活依旧.最近一周大热的赵雷风,一首<成都>,一首<理想>再次把民谣展示在国人面前.歌词着实写的不错. 理想,你今年几岁 你总是诱惑着年轻的朋友 你总是 ...
- JS验证电话号是否合法
/******************** 函数名称:IsTelephone 函数功能:固话,手机号码检查函数,合法返回true,反之,返回false 函数参数:obj,待检查的号码 检查规则: (1 ...
- JavaScript 深浅拷贝
JavaScript有五种基本数据类型(Undefined, null, Boolean, String, Number),还有一种复杂的数据类型,就是对象. Undefined 其实是已声明但没有赋 ...
- webkit 渲染机制
最近看了< webkit技术内幕 >,虽然并不能完全看懂,但是对浏览器的渲染机制也算是有了一个比较完整的认识. 我们从浏览器地址栏输入网址开始到web页面被完整的呈现在眼前,大概的经过了这 ...
- Gulp自动构建Web前端程序
这两天在一个朋友在项目上碰到了一个这样的问题,在运营过程中,用户在浏览器上对某个表单进行数据提交时,需要引入新的平台接口数据的业务,通过评估,开发团队马上修改了相关后台代码和部分的前端脚本代码,通过简 ...
- 8086cpu
1. 8086CPU和8088CPU内部结构基本相同,不同之处在于8088有8条外部数据总线,因此为准16位.8086有16条外部数据总线.两个CPU的软件完全兼容,程序的编制也完全相同. 2. ...
- gridView 主从表实现
1.主要代码: private void Form2_Load(object sender, EventArgs e) { DataTable dt1 = new DataTable("dt ...
- DEV下拉框LookUpEdit使用技巧
1,首先设置LookUpEdit要绑定的列,并配置隐藏列 2,设置下拉框是否显示表头,底部 3.设置下拉框宽度 4.设置显示的列与值列 5.设置初始值 6,绑定数据 7,取值