# 2022/05

关于像素和可访问性的惊天真相

学习 CSS 中 px/em/rem 单位与可访问性的关系,以及该如何优化用户体验。

yocto-queue

yocto-queue 源码学习笔记,学习如何设计并实现一个恒定复杂度的队列。

vue2 主动取消 watch 监听

学习 Vue@2 中怎么主动取消在 watch 选项中定义的观察者,并尝试对这个操作进行封装。

responsibility chian pattern

通过使用责任链模式来优化代码中的大量 if/else 判断。

纯 CSS 图标

学习 UNOCSS 中是如何通过纯 CSS 来使用单色/多色图标。

# 2022/04

text-overflow: ellipsis

开发中对 text-overflow: ellipsis 的一些题及解决方法。

js use strict

重新学习JS系列之《ES5 严格模式》。

框架设计的核心要素

《Vue.js设计与实现》第二章学习记录,学习 Vue.js 框架在设计框架时所考虑的核心元素。

# 2022/03

权衡的艺术

《Vue.js设计与实现》第一章学习记录,学习 Vue.js 框架在实现之前所进行的设计与对技术的考量。

classnames

实现一个类似 Vue 处理 class name 的方法。

underscore/debounce

通过 underscore 学习如何设计一个防抖函数。

# 2022/01

dotenv

学习 .env 配置文件为什么可以添加系统变量,理解它的实现原理。

await-to-js

从 await-to-js 库里学习如何以同步且优雅的方式去处理 promise 错误。

axios/utils

学习 axios 在处理用户输入及接口返回的数据时,对其进行了什么处理和做了什么。

前端生成 CHANGELOG 指南

学习如何在前端项目中生成修改修改日志文件和如何规范项目 git commit 信息。

# 2021/12

delay

可设置延迟时间同时还可以设定最后结果成功与否的延迟函数。

element-plus/new

通过 ElementPlus 中快速创建一个新的组件的功能,来学习如何批量新建模板文件。

# 2021/11

only-allow

学习项目中如何强制使用同一种包管理工具的实现原理。

remote-git-tags

通过 git 命令获取远程仓库中打的 tags 标签,再对当前包进行对比,获取是否为最新版本。

antfu/ni

antfu 大佬开发的一个小工具,会读取本地依赖锁文件来使用对应的包管理工具来下载依赖项,在可用的管理工具中使用 npm/yarn/pnpm。

观察者模式和发布订阅模式

观察者模式和发布订阅模式的区别,以及它们是如何实现的。

docker

通过一点简单的概念来学习一下 docker 的基本概念与基本操作。

html-element

盘点一下一些常用的获取和操作 DOM 的一些方法和属性。

js-event

探索一下 JavaScript 中的事件是如何触发及执行的。

node-require

学习在 NodeJS 中 require 方法的执行过程,同时学习如何给 require 方法添加 hook,以实现对引入文件的拦截及修改。

picture-guard

通过一个 node demo 了解图片守卫的基本原理。

前端项目如何优化(上)

前端项目优化到底需要优化什么?

前端项目如何优化(下)

前端项目优化到底需要优化什么?

redux

学习 redux 在 React 中的基本使用。

regexp

正则表达式的一些基本概念及用法。

@vue/ref

analysis

vue-release

学习 Vue.js 是如何将所有子包一次性发布上去的。

@vue/shared

Vue@3 中的工具方法合集。

vue-this-data-method

学习 Vue@2 中为什么可以通过 this.xxx 访问到 methods/data/computed 上的属性。

vue-dev-server

以 vite.js 的前身作为媒介,探索 vite.js 的实现原理。

# 2021/10

configstore

抹平各系统的差异,将配置持久化保存到本地。

create-vite

类似 VueCLI 的轻量型模板创建工具。

tiny-emitter

一个 event-bus 工具,通过发布订阅设计模式实现不同组件间的事件总线功能。

# 2021/09

validate-npm-package-name

npm/cli 中的一个校验包,通过正则校验包名,判断是否符合 npm 包上传的规则。

update-notifier

学习如何给项目提示过时版本的提示信息。

import-lazy

真正意义上的懒加载依赖包。通过属性劫持来判读包是否有被使用,没有使用则不进行引入。

mitt

TS 类型完整且 mini 的 event-bus,学习如何更好实现一个发布订阅模型。

koa-compose

前端人面试时经常被问到的 Koa 洋葱模型到底是什么?

# 2021/08

js-cookie

学习 JSCookie 如何封装 cookie,包括处理部分特殊情况。

vue-devtools

浏览器插件 vue-devtools 中通过点击命令按钮来自动打开编辑器并跳转到对应的文件的功能。

co

学习 async/await 语法前身。