前言
本周开始,我开始总结一周阅读或者参考过的文章给你们,都是精挑细选出来以为很是好的文章。我看过一些 coder 写的技术周刊,基本都是给一个文章的连接和标题,而后给一段原文引用就没了,我在想,我既然读了,并且我还要介绍给你们,那我就有责任给你们总结出来文章的阅读姿式,读完咱们起码要掌握或者了解什么东西。css
该系列周刊的结构以下:html
- 前言 老生常谈,一些看法和想法
- 本周话题 由于话题是集中性的,全部我会把同类的文章归属到这个分类下面
- 基础 一些我认为比较基础性的文章
- 实战 一些在实践和应用里面,有应用价值的文章
- 思考 一些我认为,值得咱们花费时间去斟酌和思考的文章
最近主要开始研究 Vue 的底层原理,包括先通读了一遍掘金小册上的《剖析 Vue.js 》内部运行机制,感受仍是讲得很不清楚,我想本身写一本讲解 Vue 实现原理的小书,因此分解成几个部分去深刻,本周的主要是「MVVM」数据双向绑定的原理和实现。前端
本周话题 1:「Event Loop」
《一篇文章教会你 Event loop——浏览器和 Node》vue
大部分的文章都只阐述了浏览器或者Node两者之一,没有对比的去看的话,认识老是浅一点。因此才有了这篇整理了百家之长的文章。node
《JavaScript 运行机制详解:再谈 Event Loop》webpack
阮一峰老师谈了对 Event Loop 的理解git
《Node 定时器详解》github
简洁明白又详细地阐述了 Node 中定时器执行的机制web
总结阅读姿式:算法
- 了解浏览器和 Node.js 中的 Event Loop,并比较二者的异同;
- 了解浏览器和 Node.js 中的定时器分别有哪些;
- 了解定时器执行的前后顺序;
本周话题 2:「MVVM」
《剖析Vue实现原理 - 如何实现双向绑定mvvm》
为了便于说明原理与实现,本文相关代码主要摘自vue源码, 并进行了简化改造,相对较简陋,并未考虑到数组的处理、数据的循环依赖等。
阅读姿式:
- 了解 Vue 的双向数据绑定原理以及核心代码模块;
- 了解如何实现双向绑定
备注:
- 下面那篇文章会更基本和简单一些,建议先看下面的;
《Vue.js双向绑定的实现原理》
Vue.js 最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统。本文仅探究双向绑定是怎样实现的。先讲涉及的知识点,再用简化得不能再简化的代码实现一个简单的 hello world 示例。
阅读姿式:
- 了解响应式的数据绑定系统的构成:(1)系统构造器;(2)数据的双向绑定;(3)劫持 DOM 对象上绑定的数据;(4)订阅发布者模式;(5)视图的初始化和更新;
- 了解代码实现的逻辑;
- 最后能本身撸一份改进版代码出来;另外做者的源码也是分析别人的,其中只能劫持一级 DOM 对象上的数据,若是嵌套多层你就会发现行不通了,因此读者们本身来改进一下
nodeToFragment
环节,以实现能够对多层 DOM 对象实现数据劫持;
《谈谈JavaScript中的双向数据绑定》
分别用 jQuery 和纯 JavaScript 来实现双向数据绑定
阅读姿式:
- 了解双向数据绑定的概念:既能够将对象属性绑定到 UI,也能经过输入组件值的改变来反馈到相对于的对象属性;
- 了解双向数据绑定的底层思想:(1)识别 UI 元素绑定相应的元素;(2)须要监视属性和 UI 元素的变化;(3)将变化传播到绑定的对象和元素;
- 了解发布者-订阅者模式;
基础
《DOM 操做成本到底高在哪儿?》
操做DOM的成本很高,不要轻易去操做DOM。尤为是React、vue等MV*框架的出现,数据驱动视图的模式愈加深刻人心,jQuery时代提供的强大便利地操做DOM的API在前端工程里用的愈来愈少。刨根问底,这里说的成本,到底高在哪儿呢?
阅读姿式:
- 什么是 DOM;
- Python也能够访问 DOM;
- 浏览器渲染过程
- 合适触发重排与重绘;
- 强调 css 放在头部,js 放在尾部的缘由;
- 了解首屏优化技能;
《github 中 tag 与 release 的建立以及二者的区别》
本文辨析在参与开源项目时会遇到的tag与release的概念区别与联系,并比较二者的建立方法。
阅读姿式:
- tag 和 release 建立方式和区别
- tag 是 git 中的概念和实现;release 是 Github、码云等源码托管商所提供的更高层的概念和实现;
《3 种 Web 会话管理的方式》
本文总结了3种常见的实现web应用会话管理的方式,这些内容能够帮助加深对web中用户登陆机制的理解,对实际项目开发也有参考价值,欢迎阅读与指正。
阅读姿式:
- 了解 3 种常见的 Web 会话管理方式、应用场景及每种方式的优缺点;
- 扩展了解如何在服务端实现:对登陆凭证作数字签名后用对称加密算法作加密处理;
- 扩展了解 3 个层次的 Web 安全问题:
- 3 种方式的会话管理凭证(sessionID、ticket、token)自己的安全性
- 客户端和服务端的 http 过程的安全性
- CSRF,跨站请求伪造
- 扩展了解 JWT(json-web-token) 标准 其定义了 token-based 的管理方式该如何实现,规定了 token 应该包含的标准内容以及 token 生成过程和方法 可参阅 jwt.io/#libraries-…
- 原做者关于 JWT 更多的文章:
《代码提交的时候能够插入表情了》
在提交代码的时候,在提交信息里面添加表情,同时也能够在项目的ReadMe.md文件里面使用表情。除此以外,固然还有项目在GitHub上的wiki页面,总之在GitHub的页面上,均可以使用。
阅读姿式:
- 在 mac 上的编辑器使用 emoji 很方便,在 windows 上就不那么方便了,但可使用如下连接给出的表情代号: www.webpagefx.com/tools/emoji…
实战
《webpack 4 升级彻底指南》
自从webpack4发布以后,你们都不敢冒然升级,主要是要去踩坑。若是你有想冲动升级的话,这篇踩坑的总结值得看看。
阅读姿式:
- 注意 node 版本的支持;
- 善用 mode 模式优化配置文件;
- optimization 属性的运用和实践;
- ExtractTextWebpackPlugin 插件调整,据其余教程所示,可用最新的 beta 版做为应急方案;
- 了解不一样模式下默认启用的配置和插件;
《passive 事件监听》
passive事件监听,是DOM规范的新特性,它可让开发者选择不阻止touch和wheel事件监听,从而得到更好的滚动性能。
阅读姿式:
- 了解为何要使用 passive 事件监听;
- 了解该特性被支持的浏览器版本;
- 了解如何调试、衡量滚动性能;
思考
《关于 Google 发布的 JS 代码规范,你须要了解什么?》
大部分的文章都只阐述了浏览器或者Node两者之一,没有对比的去看的话,认识老是浅一点。因此才有了这篇整理了百家之长的文章。
阅读姿式:
- Google 和 Airbnb 的代码规范你们能够了解一下;