## 深阅读
利用 D3 和 quadtrees 实现可视化交互中的鼠标拖拽选择
推荐理由: 在数据可视化交互中, 利用鼠标点击划选拖拽, 是我们最常用的交互之一了, 我们称之为 brushing. 这篇文章介绍了如何在散点图中利用 d3 和 d3-quadtree 来实现这样的交互, 除了应用, 还介绍了一些 D3 的优化知识, 非常值得一读.
「从源码中学习」vue 源码中的 JS 骚操作
推荐理由: vue 我们很熟悉, 但是对源码的了解可能还不够, 这里总结了很多 vue 源码中 JS 的使用技巧和方式, 让我们也能运用于实际开发, 也能同时对 vue 源码加深理解.
Reducer organization-taking a step further
推荐理由: 传统的 reducer 的 switch 方式在上下文和不立即 return 和添加 default 上会有一些不可控的缺陷, 这使得 swtich 方式并不是非常高效. 而通过键值对的方式对象中选择 reducer, 通过类和装饰器创建 reducer 使其更有重用性, 漂亮和整洁.
## 新鲜货
现代浏览器的轻量级音频库 https://howlerjs.com/
推荐理由: 默认使用 web Audio API , 有很多新特性, 涉及到音频的业务需求可以引入, 功能强大, 并且性能不错, 能够帮助你快速简单全面的控制音频 .
前端 JS 实现字符串 / 图片 / Excel 文件下载 https://mp.weixin.qq.com/s/VwRo2XDpmwP7Yf96IusGnQ
推荐理由: 在 Web 开发中, 如果你想让用户下载或者导出一个文件, 应该怎么做呢? 本文将会为你提供几种下载方式以供参考, 希望对你有所帮助
使用 document.scrollingElement 控制窗体滚动高度
推荐理由: 要实现一个返回顶部效果, 我们目前的做法是下面两个语句并行: document.documentElement.scrollTop = 0; document.body.scrollTop = 0; 就显得很啰嗦, 正是由于这种现状, document.scrollingElement 这个属性才应运而生, 直接动态识别滚动容器.
## 视野 && 工具
独家! 支付宝首次披露其小程序技术架构 https://mp.weixin.qq.com/s/PX7b_qV6tYKnN3ecoz9Ehw
推荐理由: 支付宝小程序的技术架构简介, 主要从系统架构, 性能体验, 开发者工具, 多端等方面进行介绍. 在小程序大行其道的今天, 了解它的架构方案和开发特点对开发者来说是必不可少的一门功课.
Chrome 调试技巧 https://mp.weixin.qq.com/s/QZvq9OQLDfCYjo8CP3XjoQ
推荐理由: Chrome 应该是 Web 端的开发和调试最熟悉的工具了. 这篇文章对常用的 Chrome 浏览器调试命令和部分面板做了介绍, 不算最全面, 但是非常精细实用.
来源: https://juejin.im/post/5c7c8e5be51d457f7b6c9cee