-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
33 lines (33 loc) · 36.1 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="generator" content="VuePress 2.0.0-beta.63">
<style>
:root {
--c-bg: #fff;
}
html.dark {
--c-bg: #22272e;
}
html, body {
background-color: var(--c-bg);
}
</style>
<script>
const userMode = localStorage.getItem('vuepress-color-scheme');
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
document.documentElement.classList.toggle('dark', true);
}
</script>
<link rel="icon" href="/images/logo.jpg"><title>平安喜乐</title><meta name="description" content="像太阳一样的荷包蛋">
<link rel="preload" href="/assets/style-8a38cc2d.css" as="style"><link rel="stylesheet" href="/assets/style-8a38cc2d.css">
<link rel="modulepreload" href="/assets/app-00a966d3.js"><link rel="modulepreload" href="/assets/index.html-97e8a85a.js"><link rel="modulepreload" href="/assets/index.html-126ff9c2.js"><link rel="prefetch" href="/assets/index.html-ed7391d8.js" as="script"><link rel="prefetch" href="/assets/index.html-31971396.js" as="script"><link rel="prefetch" href="/assets/打造舒服的开发环境.html-3bca912c.js" as="script"><link rel="prefetch" href="/assets/Git.html-32531784.js" as="script"><link rel="prefetch" href="/assets/index.html-f0dfc497.js" as="script"><link rel="prefetch" href="/assets/数据结构.html-91d15ea9.js" as="script"><link rel="prefetch" href="/assets/浏览器原理.html-ce39f26a.js" as="script"><link rel="prefetch" href="/assets/算法.html-28204185.js" as="script"><link rel="prefetch" href="/assets/网络协议.html-05532fd2.js" as="script"><link rel="prefetch" href="/assets/设计模式.html-cc2ab936.js" as="script"><link rel="prefetch" href="/assets/READEM.html-b3cb01d0.js" as="script"><link rel="prefetch" href="/assets/Charles下载及使用.html-d8479c43.js" as="script"><link rel="prefetch" href="/assets/Chrome常用插件.html-9fef5bc1.js" as="script"><link rel="prefetch" href="/assets/index.html-f502729a.js" as="script"><link rel="prefetch" href="/assets/VSCode常用快捷键.html-8d2543bf.js" as="script"><link rel="prefetch" href="/assets/VSCode常用插件.html-28320fcd.js" as="script"><link rel="prefetch" href="/assets/使用Vercel部署VuePress博客.html-acf0cf00.js" as="script"><link rel="prefetch" href="/assets/关于学习.html-9fdc8276.js" as="script"><link rel="prefetch" href="/assets/如何不靠运气变富有.html-74bab35d.js" as="script"><link rel="prefetch" href="/assets/如何提高自己的英文阅读水平.html-fa7250d6.js" as="script"><link rel="prefetch" href="/assets/如何正确的使用你的时间.html-b8d06194.js" as="script"><link rel="prefetch" href="/assets/如何高效的学习.html-ec7acc68.js" as="script"><link rel="prefetch" href="/assets/学会如何工作和学习技术一样重要.html-5fe39b4c.js" as="script"><link rel="prefetch" href="/assets/王者人生.html-9cb1d9e4.js" as="script"><link rel="prefetch" href="/assets/苹果换芯.html-8b6294b8.js" as="script"><link rel="prefetch" href="/assets/index.html-82c4ec1c.js" as="script"><link rel="prefetch" href="/assets/WebAPI.html-cd25f188.js" as="script"><link rel="prefetch" href="/assets/使用过WebWorker解决定时器不准确的问题.html-ee5ea187.js" as="script"><link rel="prefetch" href="/assets/前端图片压缩方案.html-22d11944.js" as="script"><link rel="prefetch" href="/assets/浏览器截屏方案分析.html-6cb1aa63.js" as="script"><link rel="prefetch" href="/assets/编写属于自己的音乐播放器.html-2561c953.js" as="script"><link rel="prefetch" href="/assets/index.html-0d6ebcbd.js" as="script"><link rel="prefetch" href="/assets/index.html-cbe9176f.js" as="script"><link rel="prefetch" href="/assets/Vite核心深入详解.html-76c2ef49.js" as="script"><link rel="prefetch" href="/assets/Win10安装Docker以及Jenkins(超级详细篇).html-5ee694b6.js" as="script"><link rel="prefetch" href="/assets/常用CICD工具详解.html-e03401d8.js" as="script"><link rel="prefetch" href="/assets/常用构建工具(Webpack、Vite、Rollup)详解.html-9f2e0375.js" as="script"><link rel="prefetch" href="/assets/index.html-f987c329.js" as="script"><link rel="prefetch" href="/assets/JavaScript对象原型链.html-cacce9e5.js" as="script"><link rel="prefetch" href="/assets/JavaScript的预编译过程分析.html-5000540b.js" as="script"><link rel="prefetch" href="/assets/JS中常见的模块.html-73cc2da5.js" as="script"><link rel="prefetch" href="/assets/JS浅拷贝与深拷贝.html-d465b973.js" as="script"><link rel="prefetch" href="/assets/Proxy和Reflect.html-11325517.js" as="script"><link rel="prefetch" href="/assets/index.html-72955dc0.js" as="script"><link rel="prefetch" href="/assets/reflect.html-ad11a21b.js" as="script"><link rel="prefetch" href="/assets/一次搞懂-JS事件循环之宏任务和微任务.html-06eabe7d.js" as="script"><link rel="prefetch" href="/assets/为什么要用setTimeout模拟setInterval?.html-81a01fd4.js" as="script"><link rel="prefetch" href="/assets/关于跨域.html-18b3a286.js" as="script"><link rel="prefetch" href="/assets/函数参数传递.html-3c1a7862.js" as="script"><link rel="prefetch" href="/assets/函数式编程.html-4c9686e8.js" as="script"><link rel="prefetch" href="/assets/创建对象的几种方法及优缺点.html-b80231ff.js" as="script"><link rel="prefetch" href="/assets/前端文件下载的正确打开方式.html-48728efa.js" as="script"><link rel="prefetch" href="/assets/实现一个PromiseA_规范的Promise.html-4e487434.js" as="script"><link rel="prefetch" href="/assets/我对JavaScript中this的一些理解.html-63731e09.js" as="script"><link rel="prefetch" href="/assets/清楚所有定时器.html-6ad458d6.js" as="script"><link rel="prefetch" href="/assets/理解JS原型链.html-5c3554b7.js" as="script"><link rel="prefetch" href="/assets/index.html-65153292.js" as="script"><link rel="prefetch" href="/assets/index.html-016e34eb.js" as="script"><link rel="prefetch" href="/assets/AOP 面向切面编程.html-961b331a.js" as="script"><link rel="prefetch" href="/assets/Koa源码解析与实现.html-f6b07779.js" as="script"><link rel="prefetch" href="/assets/koa系列(1)-中间件开发和使用.html-bed342fb.js" as="script"><link rel="prefetch" href="/assets/koa系列(2)-koa2路由实现.html-bf59979a.js" as="script"><link rel="prefetch" href="/assets/koa系列(4)-koa实现cookie和session.html-3fa29a00.js" as="script"><link rel="prefetch" href="/assets/koa系列(5)-上传文件.html-c3e2c6c2.js" as="script"><link rel="prefetch" href="/assets/koa系统(3)-原生koa实现静态资源服务器.html-1b1ec02b.js" as="script"><link rel="prefetch" href="/assets/MongoDB中常用语句.html-8a054330.js" as="script"><link rel="prefetch" href="/assets/MongoDB学习之Mongoose的使用.html-0f803559.js" as="script"><link rel="prefetch" href="/assets/NodeJS中Http模块.html-cbb9576a.js" as="script"><link rel="prefetch" href="/assets/NodeJS安装和使用.html-445e6836.js" as="script"><link rel="prefetch" href="/assets/NodeJs文件系统(fs)与流(stream).html-206aab17.js" as="script"><link rel="prefetch" href="/assets/Node中的Buffer.html-f49b16ae.js" as="script"><link rel="prefetch" href="/assets/index.html-7f53c1cc.js" as="script"><link rel="prefetch" href="/assets/中间件引擎实现.html-769b9cf7.js" as="script"><link rel="prefetch" href="/assets/使用Express搭建一个简单的服务器.html-22c369a1.js" as="script"><link rel="prefetch" href="/assets/使用Node.js写一个简单的api接口.html-9fc349bc.js" as="script"><link rel="prefetch" href="/assets/使用Node.js搭建静态服务器.html-b4455886.js" as="script"><link rel="prefetch" href="/assets/初试MongoDB数据库.html-c864af89.js" as="script"><link rel="prefetch" href="/assets/普通中间件HTTP服务.html-aa0e4071.js" as="script"><link rel="prefetch" href="/assets/最简Koa实现.html-3f9b208f.js" as="script"><link rel="prefetch" href="/assets/DOM优化之重绘和回流.html-1238e174.js" as="script"><link rel="prefetch" href="/assets/JS事件循环之宏任务和微任务.html-6c049c27.js" as="script"><link rel="prefetch" href="/assets/index.html-b24ce3d3.js" as="script"><link rel="prefetch" href="/assets/事件的防抖和节流.html-d5fef8f1.js" as="script"><link rel="prefetch" href="/assets/使用Documentfragment优化DOM操作.html-162a119a.js" as="script"><link rel="prefetch" href="/assets/微信小程序性能优化.html-b4d46af5.js" as="script"><link rel="prefetch" href="/assets/浏览器缓存机制.html-27a4acea.js" as="script"><link rel="prefetch" href="/assets/首屏优化之懒加载.html-367233e7.js" as="script"><link rel="prefetch" href="/assets/React中实现简单的Toast组件.html-72f911ff.js" as="script"><link rel="prefetch" href="/assets/index.html-8e6c97ec.js" as="script"><link rel="prefetch" href="/assets/useState的原理及实现.html-0cb0b7ed.js" as="script"><link rel="prefetch" href="/assets/从JSX到真实DOM的过程.html-3ce50b85.js" as="script"><link rel="prefetch" href="/assets/index.html-f9d13216.js" as="script"><link rel="prefetch" href="/assets/index.html-41fcf7e1.js" as="script"><link rel="prefetch" href="/assets/index.html-703e31d5.js" as="script"><link rel="prefetch" href="/assets/index.html-d866e6f7.js" as="script"><link rel="prefetch" href="/assets/2022年项目复盘总结.html-6de5108f.js" as="script"><link rel="prefetch" href="/assets/JavaScript专题之This和定时器.html-ec13e06b.js" as="script"><link rel="prefetch" href="/assets/JavaScript专题之异步编程.html-8a0009ae.js" as="script"><link rel="prefetch" href="/assets/index.html-d682dd24.js" as="script"><link rel="prefetch" href="/assets/Vue专题之Vue基础.html-6b7f09e4.js" as="script"><link rel="prefetch" href="/assets/Vue专题之Vue进阶.html-54475c4e.js" as="script"><link rel="prefetch" href="/assets/大屏定时截图上传需求复盘.html-e8bc9a0b.js" as="script"><link rel="prefetch" href="/assets/Axios源码解析.html-88329c9d.js" as="script"><link rel="prefetch" href="/assets/index.html-f8b20d5c.js" as="script"><link rel="prefetch" href="/assets/Van源码解析.html-cee39a0a.js" as="script"><link rel="prefetch" href="/assets/Vue源码解析.html-b266ab1f.js" as="script"><link rel="prefetch" href="/assets/index.html-d784bbf3.js" as="script"><link rel="prefetch" href="/assets/装饰器.html-59d6481a.js" as="script"><link rel="prefetch" href="/assets/nextTick原理解析.html-1f3bb734.js" as="script"><link rel="prefetch" href="/assets/index.html-6d0b07c7.js" as="script"><link rel="prefetch" href="/assets/Vue-Router原理解析.html-df624ca2.js" as="script"><link rel="prefetch" href="/assets/Vue2.x的双向绑定原理及实现.html-5786c306.js" as="script"><link rel="prefetch" href="/assets/Vue3对比Vue2有哪些变化.html-e7e6147a.js" as="script"><link rel="prefetch" href="/assets/Vuex原理解析.html-f07d52f4.js" as="script"><link rel="prefetch" href="/assets/Vue中的验证登录状态.html-9b8d4d98.js" as="script"><link rel="prefetch" href="/assets/Vue常见问题解析.html-b41f35f1.js" as="script"><link rel="prefetch" href="/assets/Vue模板编译原理解析.html-9d6640a0.js" as="script"><link rel="prefetch" href="/assets/Vue知识点总结.html-d56356bb.js" as="script"><link rel="prefetch" href="/assets/一次搞懂-Vue之虚拟DOM.html-16a7b6cf.js" as="script"><link rel="prefetch" href="/assets/实现mini-Vuex.html-e67d7b59.js" as="script"><link rel="prefetch" href="/assets/手写Vue-Router核心原理.html-e2f2ae8b.js" as="script"><link rel="prefetch" href="/assets/深入理解Vue的指令系统.html-ac07e22d.js" as="script"><link rel="prefetch" href="/assets/虚拟DOM之Diff算法.html-12531875.js" as="script"><link rel="prefetch" href="/assets/IOS微信浏览器视频自动播放问题解决方法.html-803f6b23.js" as="script"><link rel="prefetch" href="/assets/index.html-34497c85.js" as="script"><link rel="prefetch" href="/assets/从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程.html-ccc581e5.js" as="script"><link rel="prefetch" href="/assets/使用Promise封装小程序wx.request.html-be7fa09c.js" as="script"><link rel="prefetch" href="/assets/公众号网页开发经验总结.html-6a8827ae.js" as="script"><link rel="prefetch" href="/assets/在小程序中使用async_await.html-2d38384f.js" as="script"><link rel="prefetch" href="/assets/在小程序中使用lottie.html-2e39cd34.js" as="script"><link rel="prefetch" href="/assets/在小程序中自定义弹窗组件.html-a80e79f7.js" as="script"><link rel="prefetch" href="/assets/小程序-实现蒙版弹出窗.html-7aa69c6f.js" as="script"><link rel="prefetch" href="/assets/小程序中图片点击全屏-可滑动.html-1f5ab56b.js" as="script"><link rel="prefetch" href="/assets/小程序之iPhoneX适配.html-cdd332e9.js" as="script"><link rel="prefetch" href="/assets/小程序之瀑布流布局.html-928df02f.js" as="script"><link rel="prefetch" href="/assets/小程序开发相关总结.html-69c5517b.js" as="script"><link rel="prefetch" href="/assets/小程序性能优化和异常监控.html-7a83200a.js" as="script"><link rel="prefetch" href="/assets/小程序生成海报图片并保存.html-38378830.js" as="script"><link rel="prefetch" href="/assets/微信小程序动态加载swiper时不显示的问题(爬坑).html-26232cc0.js" as="script"><link rel="prefetch" href="/assets/微信小程序授权登录弹框组件.html-2a4b4825.js" as="script"><link rel="prefetch" href="/assets/微信小程序用户授权之最佳实践.html-5962f49d.js" as="script"><link rel="prefetch" href="/assets/解决gif图片只渲染一次的问题.html-ad48f48c.js" as="script"><link rel="prefetch" href="/assets/两数之和.html-d2a5df90.js" as="script"><link rel="prefetch" href="/assets/买卖股票的最佳时机.html-c6f134e0.js" as="script"><link rel="prefetch" href="/assets/二叉树的最大深度.html-7f584d27.js" as="script"><link rel="prefetch" href="/assets/反转链表.html-86a1db09.js" as="script"><link rel="prefetch" href="/assets/只出现一次的数字.html-3822ad8c.js" as="script"><link rel="prefetch" href="/assets/合并两个有序数组.html-ccea5d1e.js" as="script"><link rel="prefetch" href="/assets/合并两个有序链表.html-af0dd94e.js" as="script"><link rel="prefetch" href="/assets/合并二叉树.html-b1acdd4a.js" as="script"><link rel="prefetch" href="/assets/回文数.html-0118dbe9.js" as="script"><link rel="prefetch" href="/assets/字符串相加.html-029e6d9b.js" as="script"><link rel="prefetch" href="/assets/对称二叉树.html-a6e0fa5e.js" as="script"><link rel="prefetch" href="/assets/最大子序和.html-0b299327.js" as="script"><link rel="prefetch" href="/assets/有效的括号.html-f371e443.js" as="script"><link rel="prefetch" href="/assets/爬楼梯.html-087dc9a5.js" as="script"><link rel="prefetch" href="/assets/环形链表.html-7145c97a.js" as="script"><link rel="prefetch" href="/assets/翻转二叉树.html-d3ff3815.js" as="script"><link rel="prefetch" href="/assets/404.html-f9875e7b.js" as="script"><link rel="prefetch" href="/assets/index.html-da2cb07f.js" as="script"><link rel="prefetch" href="/assets/index.html-a2c7cca6.js" as="script"><link rel="prefetch" href="/assets/打造舒服的开发环境.html-94ee6f76.js" as="script"><link rel="prefetch" href="/assets/Git.html-c4b5366b.js" as="script"><link rel="prefetch" href="/assets/index.html-4cf27a80.js" as="script"><link rel="prefetch" href="/assets/数据结构.html-12717827.js" as="script"><link rel="prefetch" href="/assets/浏览器原理.html-b8ef091d.js" as="script"><link rel="prefetch" href="/assets/算法.html-043fbb1c.js" as="script"><link rel="prefetch" href="/assets/网络协议.html-1f079130.js" as="script"><link rel="prefetch" href="/assets/设计模式.html-903ebe28.js" as="script"><link rel="prefetch" href="/assets/READEM.html-5241a61f.js" as="script"><link rel="prefetch" href="/assets/Charles下载及使用.html-d8925ed2.js" as="script"><link rel="prefetch" href="/assets/Chrome常用插件.html-4e79a54f.js" as="script"><link rel="prefetch" href="/assets/index.html-1e02e0cd.js" as="script"><link rel="prefetch" href="/assets/VSCode常用快捷键.html-45b1aa8b.js" as="script"><link rel="prefetch" href="/assets/VSCode常用插件.html-60bb15b9.js" as="script"><link rel="prefetch" href="/assets/使用Vercel部署VuePress博客.html-89a1bc6e.js" as="script"><link rel="prefetch" href="/assets/关于学习.html-84d4ab57.js" as="script"><link rel="prefetch" href="/assets/如何不靠运气变富有.html-efea04ff.js" as="script"><link rel="prefetch" href="/assets/如何提高自己的英文阅读水平.html-e6fada1d.js" as="script"><link rel="prefetch" href="/assets/如何正确的使用你的时间.html-d8127a7a.js" as="script"><link rel="prefetch" href="/assets/如何高效的学习.html-7078affb.js" as="script"><link rel="prefetch" href="/assets/学会如何工作和学习技术一样重要.html-4bdc812f.js" as="script"><link rel="prefetch" href="/assets/王者人生.html-87bd66fb.js" as="script"><link rel="prefetch" href="/assets/苹果换芯.html-b204b470.js" as="script"><link rel="prefetch" href="/assets/index.html-5a8a9960.js" as="script"><link rel="prefetch" href="/assets/WebAPI.html-f391aabc.js" as="script"><link rel="prefetch" href="/assets/使用过WebWorker解决定时器不准确的问题.html-7327656c.js" as="script"><link rel="prefetch" href="/assets/前端图片压缩方案.html-2af00ff2.js" as="script"><link rel="prefetch" href="/assets/浏览器截屏方案分析.html-968f8b22.js" as="script"><link rel="prefetch" href="/assets/编写属于自己的音乐播放器.html-d9c285f2.js" as="script"><link rel="prefetch" href="/assets/index.html-89e86519.js" as="script"><link rel="prefetch" href="/assets/index.html-3b4a2785.js" as="script"><link rel="prefetch" href="/assets/Vite核心深入详解.html-a1019c55.js" as="script"><link rel="prefetch" href="/assets/Win10安装Docker以及Jenkins(超级详细篇).html-fe942d91.js" as="script"><link rel="prefetch" href="/assets/常用CICD工具详解.html-8f889d18.js" as="script"><link rel="prefetch" href="/assets/常用构建工具(Webpack、Vite、Rollup)详解.html-b9060247.js" as="script"><link rel="prefetch" href="/assets/index.html-2f3cb9d9.js" as="script"><link rel="prefetch" href="/assets/JavaScript对象原型链.html-e9d962b3.js" as="script"><link rel="prefetch" href="/assets/JavaScript的预编译过程分析.html-e83b8900.js" as="script"><link rel="prefetch" href="/assets/JS中常见的模块.html-cf0efa61.js" as="script"><link rel="prefetch" href="/assets/JS浅拷贝与深拷贝.html-8cb324b9.js" as="script"><link rel="prefetch" href="/assets/Proxy和Reflect.html-bd2cd627.js" as="script"><link rel="prefetch" href="/assets/index.html-b0f0f5ec.js" as="script"><link rel="prefetch" href="/assets/reflect.html-66919657.js" as="script"><link rel="prefetch" href="/assets/一次搞懂-JS事件循环之宏任务和微任务.html-3decc932.js" as="script"><link rel="prefetch" href="/assets/为什么要用setTimeout模拟setInterval?.html-d48e1f38.js" as="script"><link rel="prefetch" href="/assets/关于跨域.html-a028fee3.js" as="script"><link rel="prefetch" href="/assets/函数参数传递.html-75189e5f.js" as="script"><link rel="prefetch" href="/assets/函数式编程.html-09e30eb2.js" as="script"><link rel="prefetch" href="/assets/创建对象的几种方法及优缺点.html-2837a769.js" as="script"><link rel="prefetch" href="/assets/前端文件下载的正确打开方式.html-2c4e886c.js" as="script"><link rel="prefetch" href="/assets/实现一个PromiseA_规范的Promise.html-93c9d807.js" as="script"><link rel="prefetch" href="/assets/我对JavaScript中this的一些理解.html-006bb6fc.js" as="script"><link rel="prefetch" href="/assets/清楚所有定时器.html-45c7f0e9.js" as="script"><link rel="prefetch" href="/assets/理解JS原型链.html-09338673.js" as="script"><link rel="prefetch" href="/assets/index.html-ec87a2de.js" as="script"><link rel="prefetch" href="/assets/index.html-110bdfe7.js" as="script"><link rel="prefetch" href="/assets/AOP 面向切面编程.html-b11a7319.js" as="script"><link rel="prefetch" href="/assets/Koa源码解析与实现.html-5e431506.js" as="script"><link rel="prefetch" href="/assets/koa系列(1)-中间件开发和使用.html-455c921a.js" as="script"><link rel="prefetch" href="/assets/koa系列(2)-koa2路由实现.html-2287db54.js" as="script"><link rel="prefetch" href="/assets/koa系列(4)-koa实现cookie和session.html-73f657bf.js" as="script"><link rel="prefetch" href="/assets/koa系列(5)-上传文件.html-d24fe11c.js" as="script"><link rel="prefetch" href="/assets/koa系统(3)-原生koa实现静态资源服务器.html-215140d4.js" as="script"><link rel="prefetch" href="/assets/MongoDB中常用语句.html-9b8001be.js" as="script"><link rel="prefetch" href="/assets/MongoDB学习之Mongoose的使用.html-64669402.js" as="script"><link rel="prefetch" href="/assets/NodeJS中Http模块.html-904eac28.js" as="script"><link rel="prefetch" href="/assets/NodeJS安装和使用.html-c706e513.js" as="script"><link rel="prefetch" href="/assets/NodeJs文件系统(fs)与流(stream).html-441b5341.js" as="script"><link rel="prefetch" href="/assets/Node中的Buffer.html-9a47a5b1.js" as="script"><link rel="prefetch" href="/assets/index.html-859ba2bb.js" as="script"><link rel="prefetch" href="/assets/中间件引擎实现.html-2445af4c.js" as="script"><link rel="prefetch" href="/assets/使用Express搭建一个简单的服务器.html-ec4e7430.js" as="script"><link rel="prefetch" href="/assets/使用Node.js写一个简单的api接口.html-d35c0a02.js" as="script"><link rel="prefetch" href="/assets/使用Node.js搭建静态服务器.html-0eeb5c8e.js" as="script"><link rel="prefetch" href="/assets/初试MongoDB数据库.html-b1ffc92b.js" as="script"><link rel="prefetch" href="/assets/普通中间件HTTP服务.html-420b554b.js" as="script"><link rel="prefetch" href="/assets/最简Koa实现.html-a82adce2.js" as="script"><link rel="prefetch" href="/assets/DOM优化之重绘和回流.html-06f7d5c6.js" as="script"><link rel="prefetch" href="/assets/JS事件循环之宏任务和微任务.html-eb625a6b.js" as="script"><link rel="prefetch" href="/assets/index.html-ecfc1e2e.js" as="script"><link rel="prefetch" href="/assets/事件的防抖和节流.html-90092998.js" as="script"><link rel="prefetch" href="/assets/使用Documentfragment优化DOM操作.html-801ef288.js" as="script"><link rel="prefetch" href="/assets/微信小程序性能优化.html-82aedc8f.js" as="script"><link rel="prefetch" href="/assets/浏览器缓存机制.html-58c2eb80.js" as="script"><link rel="prefetch" href="/assets/首屏优化之懒加载.html-b02aea85.js" as="script"><link rel="prefetch" href="/assets/React中实现简单的Toast组件.html-6de3049b.js" as="script"><link rel="prefetch" href="/assets/index.html-c757913a.js" as="script"><link rel="prefetch" href="/assets/useState的原理及实现.html-20d9e762.js" as="script"><link rel="prefetch" href="/assets/从JSX到真实DOM的过程.html-3d5b5d49.js" as="script"><link rel="prefetch" href="/assets/index.html-4d5d56e4.js" as="script"><link rel="prefetch" href="/assets/index.html-68a2c98a.js" as="script"><link rel="prefetch" href="/assets/index.html-c6fc5d8f.js" as="script"><link rel="prefetch" href="/assets/index.html-a9d7d8e8.js" as="script"><link rel="prefetch" href="/assets/2022年项目复盘总结.html-1043daa6.js" as="script"><link rel="prefetch" href="/assets/JavaScript专题之This和定时器.html-9007115a.js" as="script"><link rel="prefetch" href="/assets/JavaScript专题之异步编程.html-0cb2908b.js" as="script"><link rel="prefetch" href="/assets/index.html-47a41c5c.js" as="script"><link rel="prefetch" href="/assets/Vue专题之Vue基础.html-62beb097.js" as="script"><link rel="prefetch" href="/assets/Vue专题之Vue进阶.html-3a47275b.js" as="script"><link rel="prefetch" href="/assets/大屏定时截图上传需求复盘.html-13191d03.js" as="script"><link rel="prefetch" href="/assets/Axios源码解析.html-99a43fe1.js" as="script"><link rel="prefetch" href="/assets/index.html-72c11524.js" as="script"><link rel="prefetch" href="/assets/Van源码解析.html-0e3a4eba.js" as="script"><link rel="prefetch" href="/assets/Vue源码解析.html-91cd0677.js" as="script"><link rel="prefetch" href="/assets/index.html-b95e57e9.js" as="script"><link rel="prefetch" href="/assets/装饰器.html-ff00fca0.js" as="script"><link rel="prefetch" href="/assets/nextTick原理解析.html-c6d19865.js" as="script"><link rel="prefetch" href="/assets/index.html-ef0a8880.js" as="script"><link rel="prefetch" href="/assets/Vue-Router原理解析.html-b360faf4.js" as="script"><link rel="prefetch" href="/assets/Vue2.x的双向绑定原理及实现.html-1f36b6c3.js" as="script"><link rel="prefetch" href="/assets/Vue3对比Vue2有哪些变化.html-13f54bf5.js" as="script"><link rel="prefetch" href="/assets/Vuex原理解析.html-0d283b63.js" as="script"><link rel="prefetch" href="/assets/Vue中的验证登录状态.html-3d740d02.js" as="script"><link rel="prefetch" href="/assets/Vue常见问题解析.html-a9268f75.js" as="script"><link rel="prefetch" href="/assets/Vue模板编译原理解析.html-4e3af6fe.js" as="script"><link rel="prefetch" href="/assets/Vue知识点总结.html-349d623f.js" as="script"><link rel="prefetch" href="/assets/一次搞懂-Vue之虚拟DOM.html-78c861d6.js" as="script"><link rel="prefetch" href="/assets/实现mini-Vuex.html-1ccbd2d9.js" as="script"><link rel="prefetch" href="/assets/手写Vue-Router核心原理.html-1fa4c00d.js" as="script"><link rel="prefetch" href="/assets/深入理解Vue的指令系统.html-feb75ba3.js" as="script"><link rel="prefetch" href="/assets/虚拟DOM之Diff算法.html-a7b7a146.js" as="script"><link rel="prefetch" href="/assets/IOS微信浏览器视频自动播放问题解决方法.html-58bc2683.js" as="script"><link rel="prefetch" href="/assets/index.html-31c40861.js" as="script"><link rel="prefetch" href="/assets/从前端的角度来梳理微信支付(小程序、H5、JSAPI)的流程.html-bba2b0ba.js" as="script"><link rel="prefetch" href="/assets/使用Promise封装小程序wx.request.html-d5566d8e.js" as="script"><link rel="prefetch" href="/assets/公众号网页开发经验总结.html-e4886e26.js" as="script"><link rel="prefetch" href="/assets/在小程序中使用async_await.html-15f4afdb.js" as="script"><link rel="prefetch" href="/assets/在小程序中使用lottie.html-97cf332c.js" as="script"><link rel="prefetch" href="/assets/在小程序中自定义弹窗组件.html-bc4e92ba.js" as="script"><link rel="prefetch" href="/assets/小程序-实现蒙版弹出窗.html-8381df5e.js" as="script"><link rel="prefetch" href="/assets/小程序中图片点击全屏-可滑动.html-acc25979.js" as="script"><link rel="prefetch" href="/assets/小程序之iPhoneX适配.html-4e56206f.js" as="script"><link rel="prefetch" href="/assets/小程序之瀑布流布局.html-733f4011.js" as="script"><link rel="prefetch" href="/assets/小程序开发相关总结.html-cce17212.js" as="script"><link rel="prefetch" href="/assets/小程序性能优化和异常监控.html-a22cc0a7.js" as="script"><link rel="prefetch" href="/assets/小程序生成海报图片并保存.html-68a21582.js" as="script"><link rel="prefetch" href="/assets/微信小程序动态加载swiper时不显示的问题(爬坑).html-4a2b3cbf.js" as="script"><link rel="prefetch" href="/assets/微信小程序授权登录弹框组件.html-ecdc3bcf.js" as="script"><link rel="prefetch" href="/assets/微信小程序用户授权之最佳实践.html-bb40113a.js" as="script"><link rel="prefetch" href="/assets/解决gif图片只渲染一次的问题.html-d93eb465.js" as="script"><link rel="prefetch" href="/assets/两数之和.html-8f4fe895.js" as="script"><link rel="prefetch" href="/assets/买卖股票的最佳时机.html-a9d28e73.js" as="script"><link rel="prefetch" href="/assets/二叉树的最大深度.html-8f37c051.js" as="script"><link rel="prefetch" href="/assets/反转链表.html-a112e6b3.js" as="script"><link rel="prefetch" href="/assets/只出现一次的数字.html-583ca068.js" as="script"><link rel="prefetch" href="/assets/合并两个有序数组.html-85dd0327.js" as="script"><link rel="prefetch" href="/assets/合并两个有序链表.html-6c3b48a4.js" as="script"><link rel="prefetch" href="/assets/合并二叉树.html-5e8b52a4.js" as="script"><link rel="prefetch" href="/assets/回文数.html-1eeae04e.js" as="script"><link rel="prefetch" href="/assets/字符串相加.html-94f81fb2.js" as="script"><link rel="prefetch" href="/assets/对称二叉树.html-d0ef3be8.js" as="script"><link rel="prefetch" href="/assets/最大子序和.html-bc6200ed.js" as="script"><link rel="prefetch" href="/assets/有效的括号.html-5de222cc.js" as="script"><link rel="prefetch" href="/assets/爬楼梯.html-867795c8.js" as="script"><link rel="prefetch" href="/assets/环形链表.html-ce5d77cc.js" as="script"><link rel="prefetch" href="/assets/翻转二叉树.html-3ef2f5b7.js" as="script"><link rel="prefetch" href="/assets/404.html-894cef56.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="theme-container no-sidebar"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a aria-current="page" href="/" class="router-link-active router-link-exact-active"><!----><span class="site-name">平安喜乐</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a aria-current="page" href="/" class="router-link-active router-link-exact-active" aria-label="主页"><!--[--><!--]--> 主页 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/articles/" class="" aria-label="技术文章"><!--[--><!--]--> 技术文章 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/computer-base/" class="" aria-label="计算机基础"><!--[--><!--]--> 计算机基础 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/life-essay/" class="" aria-label="生活杂文"><!--[--><!--]--> 生活杂文 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/about/" class="" aria-label="关于"><!--[--><!--]--> 关于 <!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="toggle color mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!----></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a aria-current="page" href="/" class="router-link-active router-link-exact-active" aria-label="主页"><!--[--><!--]--> 主页 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/articles/" class="" aria-label="技术文章"><!--[--><!--]--> 技术文章 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/computer-base/" class="" aria-label="计算机基础"><!--[--><!--]--> 计算机基础 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/life-essay/" class="" aria-label="生活杂文"><!--[--><!--]--> 生活杂文 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/about/" class="" aria-label="关于"><!--[--><!--]--> 关于 <!--[--><!--]--></a></div><!--]--></nav><!--[--><!--]--><!----><!--[--><!--]--></aside><!--]--><!--[--><main class="home"><header class="hero"><img src="/images/hero.png" alt="哈哈哈哈哈哈" height="280"><h1 id="main-title">哈哈哈哈哈哈</h1><p class="description">面朝大海,春暖花开。</p><p class="actions"><!--[--><a href="/articles/" class="action-button primary" aria-label="开始阅读 →"><!--[--><!--]--> 开始阅读 → <!--[--><!--]--></a><!--]--></p></header><div class="features"><!--[--><div class="feature"><h2>技术文章</h2><p>博文以JavaScript、Vue、React、小程序、Node等技术文章为主。</p></div><div class="feature"><h2>计算机通识</h2><p>作为是一个软件工程师,计算机基础知识必不可少。</p></div><div class="feature"><h2>生活杂文</h2><p>随手记录一些生活、学习、工作感悟,偶尔引用一些好文章。</p></div><!--]--></div><div class="theme-default-content"><div><h2 id="最新文章" tabindex="-1"><a class="header-anchor" href="#最新文章" aria-hidden="true">#</a> 最新文章</h2><ul><li>2023 年 03 月 13 日 - <a href="/articles/Engineering/Win10%E5%AE%89%E8%A3%85Docker%E4%BB%A5%E5%8F%8AJenkins(%E8%B6%85%E7%BA%A7%E8%AF%A6%E7%BB%86%E7%AF%87)">Win10安装 Docker 以及 Jenkins(超级详细篇)</a></li><li>2023 年 03 月 01 日 - <a href="/articles/Engineering/%E5%B8%B8%E7%94%A8%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7(Webpack%E3%80%81Vite%E3%80%81Rollup)%E8%AF%A6%E8%A7%A3%3E">常用构建工具(Webpack、Vite、Rollup)详解</a></li><li>2021 年 7 月 20 日 - <a href="/articles/Vue/Vue%E6%A8%A1%E6%9D%BF%E7%BC%96%E8%AF%91%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90.html" class="">Vue 模板编译原理解析</a></li><li>2021 年 7 月 15 日 - <a href="/articles/Vue/nextTick%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90.html" class="">nextTick 原理解析</a></li><li>2021 年 7 月 12 日 - <a href="/articles/Vue/Vue%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E6%9E%90.html" class="">Vue 常见问题解析</a></li><li>2021 年 7 月 7 日 - <a href="/articles/Vue/%E8%99%9A%E6%8B%9FDOM%E4%B9%8BDiff%E7%AE%97%E6%B3%95.html" class="">虚拟 DOM 之 Diff 算法</a></li><li>2021 年 6 月 11 日 - <a href="/articles/Share/Vue%E4%B8%93%E9%A2%98%E4%B9%8BVue%E8%BF%9B%E9%98%B6.html" class="">Vue 专题之 Vue 进阶</a></li><li>2021 年 6 月 06 日 - <a href="/articles/Share/Vue%E4%B8%93%E9%A2%98%E4%B9%8BVue%E5%9F%BA%E7%A1%80.html" class="">Vue 专题之 Vue 基础</a></li><li>2021 年 5 月 28 日 - <a href="/articles/Share/JavaScript%E4%B8%93%E9%A2%98%E4%B9%8B%E5%BC%82%E6%AD%A5%E7%BC%96%E7%A8%8B.html" class="">分享-JavaScript 专题之异步编程</a></li><li>2021 年 5 月 26 日 - <a href="/articles/Vue/%E4%B8%80%E6%AC%A1%E6%90%9E%E6%87%82-Vue%E4%B9%8B%E8%99%9A%E6%8B%9FDOM.html" class="">一次搞懂-Vue 之虚拟 DOM</a></li><li>2021 年 5 月 18 日 - <a href="/articles/Share/JavaScript%E4%B8%93%E9%A2%98%E4%B9%8BThis%E5%92%8C%E5%AE%9A%E6%97%B6%E5%99%A8.html" class="">分享-JavaScript 专题之 This 和定时器</a></li><li>2021 年 5 月 12 日 - <a href="/articles/JavaScript/JS%E4%B8%AD%E5%B8%B8%E8%A7%81%E7%9A%84%E6%A8%A1%E5%9D%97.html" class="">JS 中常见的模块</a></li><li>2021 年 5 月 10 日 - <a href="/articles/JavaScript/%E4%B8%80%E6%AC%A1%E6%90%9E%E6%87%82-JS%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF%E4%B9%8B%E5%AE%8F%E4%BB%BB%E5%8A%A1%E5%92%8C%E5%BE%AE%E4%BB%BB%E5%8A%A1.html" class="">一次搞懂-JS 事件循环之宏任务和微任务</a></li><li>2021 年 4 月 08 日 - <a href="/computer-base/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.html" class="">设计模式</a></li><li>2021 年 3 月 28 日 - <a href="/articles/Vue/Vuex%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90.html" class="">Vuex 原理解析</a></li></ul></div></div><!--[--><!-- eslint-disable-next-line vue/no-v-html --><div class="footer">MIT Licensed | Copyright © 2018-2023 syxiao</div><!--]--></main><!--]--></div><!----><!--]--></div>
<script type="module" src="/assets/app-00a966d3.js" defer></script>
</body>
</html>