# 文档收藏
# 前言
一直想整理自己的收藏夹,正好看到掘金上有这篇文章,先备份过来,后续增加自己的收藏。好文太多,很多文章都需要反复阅读,经常舍不得关浏览器窗口,通通收藏 💯 。
# CSS
- css加载会造成阻塞吗 (opens new window)
- 不可思议的纯 CSS 滚动进度条效果 (opens new window)
- CSS实现水平垂直居中的1010种方式(史上最全) (opens new window)
- rem布局解析 (opens new window)
- 布局的下一次革新 (opens new window)
- 彻底搞懂word-break、word-wrap、white-space (opens new window)
- 彻底搞懂CSS层叠上下文、层叠等级、层叠顺序、z-index (opens new window)
- css加载会造成阻塞吗? (opens new window)
- 从青铜到王者10个css3伪类使用技巧和运用,了解一哈 (opens new window)
- CSS性能优化的8个技巧 (opens new window)
- 个人总结(css3新特性) (opens new window)
- CSS设置居中的方案总结-超全 (opens new window)
- Web开发者需要知道的CSS Tricks (opens new window)
- CSS 常用技巧 (opens new window)
- 你未必知道的49个CSS知识点 (opens new window)
- CSS Tricks (opens new window)
- 记录一些 CSS 的新属性和一点奇技淫巧
# JavaScript
- 发布订阅模式,在工作中它的能量超乎你的想象 (opens new window)
- 谁说前端不需要懂-Nginx反向代理与负载均衡 (opens new window)
- CSS世界中那些说起来很冷的知识 (opens new window)
- WebSocket是时候展现你优秀的一面了 (opens new window)
- socket.io让每个人都可以开发属于自己的即时通讯 (opens new window)
- WebSocket 是什么原理?为什么可以实现持久连接 (opens new window)
- JavaScript 如何工作:对引擎、运行时、调用堆栈的概述 (opens new window)
- 了解JavaScript调用栈
- 理解 JavaScript 中的执行上下文和执行栈 (opens new window)
- 执行上下文、变量环境、词法环境 再看一遍
- 这一次,彻底弄懂 JavaScript 执行机制 (opens new window)
- JavaScript开发者应懂的33个概念 (opens new window)
- 前端js实现字符串/图片/excel文件下载 (opens new window)
- JavaScript 复杂判断的更优雅写法 (opens new window)
- 性感的Promise,拥抱ta然后扒光ta (opens new window)
- 近一万字的ES6语法知识点补充 (opens new window)
- 深拷贝的终极探索(90%的人都不知道) (opens new window)
- 前端路由跳转基本原理 (opens new window)
- 九种跨域方式实现原理 (opens new window)
- 发现 JavaScript 中闭包的强大威力 (opens new window)
- 你可能不熟悉的JS总结 (opens new window)
- JavaScript中高阶函数的魅力 (opens new window)
- 小邵教你玩转JS面向对象 (opens new window)
- AST抽象语法树——最基础的javascript重点知识,99%的人根本不了解 (opens new window)
- ES6、ES7、ES8特性一锅炖 (opens new window)
- 如何在 JavaScript 中更好地使用数组 (opens new window)
- 7分钟理解JS的节流、防抖及使用场景 (opens new window)
- ECMAScript 6 六级考试 (opens new window)
- javascript: Airbnb JavaScript 代码规范 (opens new window)
- Promise实现原理(附源码) (opens new window)
- 可能是最好的正则表达式的教程笔记了吧... (opens new window)
- 一些 JavaScript 中的代码小技巧 (opens new window)
- 急速JavaScript全栈教程 (opens new window)
- 理解异步之美 --- promise与async await (三) (opens new window)
- ES9已经来了 Are you ready? (opens new window)
- 使用原生 JavaScript构建状态管理系统 (opens new window)
- Promise 必知必会(十道题) (opens new window)
- JS正则表达式完整教程(略长) (opens new window)
- 防抖和节流原理分析 (opens new window)
- JavaScript 实用技巧和写法建议 (opens new window)
- 编写自己的代码库(javascript常用实例的实现与封装) (opens new window)
- import、require、export、module.exports 混合使用详解 (opens new window)
- WebSocket:5分钟从入门到精通 (opens new window)
- JavaScript 运行原理解析 (opens new window)
- 简单了解JavaScript垃圾回收机制 (opens new window)
- 一次记住js的6个正则方法 (opens new window)
- 几道JS代码手写题以及一些代码实现 (opens new window)
- JSBridge的原理 (opens new window)
- 面试官: 你了解前端路由吗? (opens new window)
- 深入剖析 JavaScriptCore (opens new window)
- JavaScript闭包的底层运行机制 (opens new window)
- JavaScript 中的多线程 -- Web Worker (opens new window)
- 解锁多种JavaScript数组去重姿势 (opens new window)
- Promise不会??看这里!!!史上最通俗易懂的Promise!!! (opens new window)
- 前端将数据转化为弹幕效果的实现方式 (opens new window)
- 浅谈 instanceof 和 typeof 的实现原理 (opens new window)
- 一起学习造轮子(一):从零开始写一个符合Promises/A+规范的promise (opens new window)
- 前端性能相关:防抖、节流 (opens new window)
- 7种方法实现数组去重 (opens new window)
- 如何实现一个HTTP请求库——axios源码阅读与分析 (opens new window)
- 面试官:既然React/Vue可以用Event Bus进行组件通信,你可以实现下吗? (opens new window)
- 高阶函数,你怎么那么漂亮呢! (opens new window)
- 面试官:请你实现一个深克隆 (opens new window)
- 前端模块化:CommonJS,AMD,CMD,ES6 (opens new window)
- 小邵教你玩转promise源码 (opens new window)
- Promise原理讲解 && 实现一个Promise对象 (opens new window)
- 浅谈 HTTP/2 Server Push (opens new window)
- 开发更好用的 JavaScript 模块 (opens new window)
- JavaScript复杂判断的更优雅写法 (opens new window)
- 我从来不理解JavaScript闭包,直到有人这样向我解释它 (opens new window)
- 重新认识构造函数、原型和原型链 (opens new window)
- 如何在 Web 关闭页面时发送 Ajax 请求 (opens new window)
- 用 Proxy 追踪 JavaScript 类 (opens new window)
- 「中高级前端面试」JavaScript手写代码无敌秘籍 (opens new window)
- JavaScript的环境模型 (opens new window)
- 面试官(6): 写过『通用前端组件』吗? (opens new window)
- 抱歉,学会 Proxy 真的可以为所欲为 (opens new window)
- 中级前端工程师必须要掌握的 28 个 JavaScript 技巧 (opens new window)
- 前端路由原理解析和实现 (opens new window)
- 正则表达式不要背 (opens new window)
- 前端必知必会--操作URL的黑科技 (opens new window)
- 送你43道JavaScript面试题 (opens new window)
- 深入 JavaScript 设计模式,从此有了优化代码的理论依据 (opens new window)
# typescript
- TypeScript,初次见面,请多指教 (opens new window)
- 可能是你需要的react + typescript 50条规范和经验 (opens new window)
- 一些使用规范
- 一份不可多得的 TS 学习指南(1.8W字) (opens new window)
- 总结TypeScript在项目开发中的应用实践体会 (opens new window)
- 在项目里面的实践
# Node
- 一篇文章构建你的 NodeJS 知识体系 (opens new window)
- 200 多行代码实现 Websocket 协议 (opens new window)
- 浏览器与Node的事件循环(Event Loop)有何区别 (opens new window)
- NodeJS与模块系统 (opens new window)
- 面试之Event Loop,nextTick()和setImmediate()区别分析 (opens new window)
# Vue 技术栈
- VUE Performance - UI Render (opens new window)
- 调优渲染性能(Vue指令绑定, 组件划分, Vuex单向数据流管理与UI响应)
- 推荐 7 个 Vue2、Vue3 源码解密分析的重磅开源项目 (opens new window)
# React 技术栈
React 源码剖析系列 - 生命周期的管理艺术 (opens new window)
- 生命周期主要通过三种状态进行管理:MOUNTING、RECEIVE_PROPS、UNMOUNTING
深入React的生命周期(上):出生阶段(Mount) (opens new window)
- 仅生成React组件不会触发生命周期的调用
- componentWillMount和render父组件先调用,与componentDidMount顺序恰巧相反
深入React的生命周期(下):更新(Update) (opens new window)
- 虽然props的更改会引起componentWillReceiveProps的调用;但componentWillReceiveProps的调用并不意味着props真的发生了变化。
React 源码剖析系列 - 不可思议的 react diff (opens new window)
- 关于两个list的比较还是比较深入的,可以重点研究
深度剖析:如何实现一个 Virtual DOM 算法 (opens new window)
- 代码实现可作为参考
React 源码剖析系列 - 解密 setState (opens new window)
- setState是同步的,事务需要了解
setState 之后发生了什么 —— 浅谈 React 中的 Transaction (opens new window)
# 前端工程(架构、软实力)
- 前端缓存最佳实践 (opens new window)
- 写给前端看的架构文章(1):MVC VS Flux (opens new window)
- 前端数据校验从建模开始 (opens new window)
- 前端也需要了解的 JSONP 安全 (opens new window)
- 网站性能优化实战——从12.67s到1.06s的故事 (opens new window)
- 5 分钟撸一个前端性能监控工具 (opens new window)
- 浏览器页面资源加载过程与优化 (opens new window)
- 现代化懒加载的方式 (opens new window)
- 用 preload 预加载页面资源 (opens new window)
- 干货!各种常见布局实现+知名网站实例分析 (opens new window)
- 前端数据结构与算法 (opens new window)
- 前端工程师为什么要学习编译原理? (opens new window)
- jsonp的原理与实现 (opens new window)
- 懒加载和预加载 (opens new window)
- 50行代码的MVVM,感受闭包的艺术 (opens new window)
- 不好意思!耽误你的十分钟,让MVVM原理还给你 (opens new window)
- 2018 前端性能优化清单 (opens new window)
- 网页图片加载优化方案 (opens new window)
- 把前端监控做到极致 (opens new window)
- 如何优雅处理前端异常 (opens new window)
- 经典面试题:从 URL 输入到页面展现到底发生什么 (opens new window)
- 前端同构渲染的思考与实践 (opens new window)
- 前端构建秘籍 (opens new window)
- 大型项目前端架构浅谈(8000字原创) (opens new window)
- 一名【合格】前端工程师的自检清单 (opens new window)
- 15分钟搭一个企业级脚手架 (opens new window)
# webpack/babel
- Webpack 源码(一)—— Tapable 和 事件流 (opens new window)
- 手把手教你撸一个 Webpack Loader (opens new window)
- 面试官: 你了解过Babel吗?写过Babel插件吗? 答: 没有。卒 (opens new window)
- Write Better JavaScript With Webpack (opens new window)
- 手把手教你撸一个简易的 webpack (opens new window)
- 带你走进webpack世界,成为webpack头号玩家 (opens new window)
- webpack 优化方法讲解较多、prod/dev 配置文件、loader/plugin 的简单编写介绍
- webpack打包之后的文件过大的解决方法 (opens new window)
- webpack详解 (opens new window)
- webpack4-用之初体验,一起敲它十一遍 (opens new window)
- 从零配置,基础配置,c3 前缀,热更新、提取公共代码等
- 基于Webpack搭建React开发环境 (opens new window)
- 简单借鉴 webpack-merge
- 入门babel--实现一个es6的class转换器 (opens new window)
- webpack 中那些最易混淆的 5 个知识点 (opens new window)
- 关于webpack4的14个知识点,童叟无欺 (opens new window)
- Babel7 转码(二) - @babel/preset-env + @babel/polyfill (opens new window)
- webpack-template基础配置详解 (opens new window)
- 一口(很长的)气了解 babel (opens new window)
- 升级babel7注意事项 (opens new window)
- @babel/preset-env 与@babel/plugin-transform-runtime 使用及场景区别 (opens new window)
- 「一劳永逸」由浅入深配置webpack4 (opens new window)
- 做了一夜动画,让大家十分钟搞懂Webpack (opens new window)
- 当面试官问Webpack的时候他想知道什么 (opens new window)
# Test
# Http
- 设计一个无懈可击的浏览器缓存方案:关于思路,细节,ServiceWorker,以及HTTP/2 (opens new window)
- 你应该知道的前端——缓存 (opens new window)
- HTTP 缓存机制一二三 (opens new window)
- 都9102年了,还问GET和POST的区别 (opens new window)
- 通过HTTP的HEADER完成各种骚操作 (opens new window)
- 九个问题从入门到熟悉HTTPS (opens new window)
- 谈谈 HTTPS (opens new window)
- 你敢在post和get上刁难我,就别怪我装逼了 (opens new window)
- 图解TCP三次握手与四次分手 (opens new window)
- 面试带你飞:这是一份全面的 计算机网络基础 总结攻略 (opens new window)
- 小哥哥,小姐姐,我有一份tcp、http面试指南你要吗? (opens new window)
- 看图学HTTPS (opens new window)
- 分分钟让你理解HTTPS (opens new window)
- 小哥哥,小姐姐,我有一份tcp、http面试指南你要吗? (opens new window)
- HTTP2基本概念学习笔记 (opens new window)
- 都2019年了,还问GET和POST的区别 (opens new window)
- 前端基础篇之HTTP协议 (opens new window)
- 关于三次握手与四次挥手面试官想考我们什么 (opens new window)
- 寒冬求职之你必须要懂的Web安全 (opens new window)
- 前端基础篇之HTTP协议 (opens new window)- [ ] 你真的了解 Cookie 和 Session 吗 (opens new window)
- 这几个概念你可能还是没搞清require、import和export (opens new window)
# 浏览器
- 前端必须要懂的浏览器缓存机制 (opens new window)
- 浏览器的回流与重绘 (Reflow & Repaint) (opens new window)
- 深入浅出浏览器渲染原理 (opens new window)
- 抛弃console.log(),拥抱浏览器Debugger (opens new window)
# 面试
一道被前端忽略的基础题,不信看你会几题 (opens new window)
- 修正了变量提升和函数提升相关说法
- 原文 一道关于定义和执行的问题 (opens new window)
# 数据结构与算法
- 前端笔试&面试爬坑系列---算法 (opens new window)
- 漫画:什么是红黑树 (opens new window)
- ing 《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理 (opens new window)
# JSON Schema
# Flutter
- Flutter实战视频-移动电商 (opens new window)
- flutter中event_bus实现原理 (opens new window)
- Flutter 面试知识点集锦 (opens new window)
# 业务需求
# 爬虫
# 其他
- 四月前端知识集锦 (opens new window)
- web 项目如何进行 git 多人协作开发 (opens new window)
- Chrome插件编写 (opens new window)
- 用 yeoman 打造自己的项目脚手架 (opens new window)
- Weex 入坑指南:手把手编译 Playground (opens new window)
- 什么是 PWA (opens new window)
- 打造属于自己的cnpm/npm安装,生成自定义项目架构 (opens new window)
- 仿 vue-cli 搭建属于自己的脚手架 (opens new window)
- 教你从零开始搭建一款前端脚手架工具 (opens new window)
- 基于node.js的脚手架工具开发经历 (opens new window)
- 从零开始搭建脚手架 (opens new window)
- react组件从搭建脚手架到在npm发布的步骤实现 (opens new window)
- Git飞行规则(Flight Rules) (opens new window)
- 推荐 7 个 Vue2、Vue3 源码解密分析的重磅开源项目 (opens new window)
- 写给前端的跨平台方案、跨端引擎的本质 (opens new window)
# 结束语
所有文章,都需要好好学习,还有太多需要学习。不能停止学习。