-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
25 lines (23 loc) · 41.8 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
<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>「🦆TSK的博客」 | 「🦆TSK的博客」</title>
<meta name="description" content="tsk Blog">
<link rel="preload stylesheet" href="/assets/style.32ba76e6.css" as="style">
<script type="module" src="/assets/app.399d29ad.js"></script>
<link rel="preload" href="/assets/inter-roman-latin.2ed14f66.woff2" as="font" type="font/woff2" crossorigin="">
<link rel="modulepreload" href="/assets/chunks/framework.28b27ef0.js">
<link rel="modulepreload" href="/assets/chunks/theme.3be8655a.js">
<link rel="modulepreload" href="/assets/chunks/index.11aeac8a.js">
<link rel="modulepreload" href="/assets/chunks/commonjsHelpers.725317a4.js">
<link rel="modulepreload" href="/assets/index.md.3178d033.lean.js">
<link rel="icon" href="/B.Duck.svg">
<script id="check-dark-light">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-0afd77a3><!--[--><!--]--><!--[--><span tabindex="-1" data-v-aac43f55></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-aac43f55> Skip to content </a><!--]--><!----><header class="VPNav" data-v-0afd77a3 data-v-5c989aa6><div class="VPNavBar" data-v-5c989aa6 data-v-954b9eb4><div class="container" data-v-954b9eb4><div class="title" data-v-954b9eb4><div class="VPNavBarTitle" data-v-954b9eb4 data-v-6d1c9664><a class="title" href="/" data-v-6d1c9664><!--[--><!--]--><!----><!--[-->「🦆TSK的博客」<!--]--><!--[--><!--]--></a></div></div><div class="content" data-v-954b9eb4><div class="curtain" data-v-954b9eb4></div><div class="content-body" data-v-954b9eb4><!--[--><!--]--><div class="VPNavBarSearch search" style="--vp-meta-key:'Meta';" data-v-954b9eb4><!--[--><!----><div id="docsearch"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg class="DocSearch-Search-Icon" width="20" height="20" viewBox="0 0 20 20" aria-label="search icon"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-954b9eb4 data-v-0242e50a><span id="main-nav-aria-label" class="visually-hidden" data-v-0242e50a>Main Navigation</span><!--[--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-0242e50a data-v-91d99ef7><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-91d99ef7><span class="text" data-v-91d99ef7><!----> 前端 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-91d99ef7><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-91d99ef7><div class="VPMenu" data-v-91d99ef7 data-v-929f42ac><div class="items" data-v-929f42ac><!--[--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/HTML/%E6%A0%87%E7%AD%BE.html" data-v-14947616><!--[-->HTML<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/CSS/%E5%9F%BA%E7%A1%80.html" data-v-14947616><!--[-->CSS<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/JS/window.html" data-v-14947616><!--[-->JS<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/TS/index.html" data-v-14947616><!--[-->TS<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/Vue/directives/ripple.html" data-v-14947616><!--[-->Vue<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/React/ts.html" data-v-14947616><!--[-->React<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-0242e50a data-v-91d99ef7><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-91d99ef7><span class="text" data-v-91d99ef7><!----> 后端 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-91d99ef7><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-91d99ef7><div class="VPMenu" data-v-91d99ef7 data-v-929f42ac><div class="items" data-v-929f42ac><!--[--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/node.html" data-v-14947616><!--[-->node<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/promise.html" data-v-14947616><!--[-->promise<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/jwt.html" data-v-14947616><!--[-->Cookie/session/jwt<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/%E4%BB%BB%E5%8A%A1%E9%98%9F%E5%88%97.html" data-v-14947616><!--[-->任务队列<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/%E5%8A%A0%E5%AF%86.html" data-v-14947616><!--[-->加密<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/mock.html" data-v-14947616><!--[-->mock<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/nest/nest/index.html" data-v-14947616><!--[-->nest<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/java/base.html" data-v-14947616><!--[-->java<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/sql.html" data-v-14947616><!--[-->sql<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/nginx.html" data-v-14947616><!--[-->nginx<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/backend/docker.html" data-v-14947616><!--[-->docker<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-0242e50a data-v-91d99ef7><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-91d99ef7><span class="text" data-v-91d99ef7><!----> 其他 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-91d99ef7><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-91d99ef7><div class="VPMenu" data-v-91d99ef7 data-v-929f42ac><div class="items" data-v-929f42ac><!--[--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/html.html" data-v-14947616><!--[-->html技巧<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/js.html" data-v-14947616><!--[-->js技巧<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/%E7%BD%91%E7%BB%9C.html" data-v-14947616><!--[-->网络<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/%E6%AD%A3%E5%88%99.html" data-v-14947616><!--[-->正则<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.html" data-v-14947616><!--[-->设计模式<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/%E4%BB%A3%E7%A0%81%E8%A7%84%E8%8C%83.html" data-v-14947616><!--[-->代码规范<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/git.html" data-v-14947616><!--[-->git<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/%E5%BF%AB%E6%8D%B7%E9%94%AE.html" data-v-14947616><!--[-->快捷键<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/skill/linux.html" data-v-14947616><!--[-->linux<!--]--></a></div><!--]--><!--[--><div class="VPMenuGroup" data-v-929f42ac data-v-0c703cc4><!----><!--[--><!--[--><div class="VPMenuLink" data-v-0c703cc4 data-v-14947616><a class="VPLink link" href="/skill/%E8%8B%B1%E8%AF%AD.html" data-v-14947616><!--[-->英语<!--]--></a></div><!--]--><!--]--></div><!--]--><!--[--><div class="VPMenuGroup" data-v-929f42ac data-v-0c703cc4><!----><!--[--><!--[--><div class="VPMenuLink" data-v-0c703cc4 data-v-14947616><a class="VPLink link" href="/skill/%E5%B7%A5%E5%85%B7%E5%8C%85.html" data-v-14947616><!--[-->工具包<!--]--></a></div><!--]--><!--]--></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-0242e50a data-v-91d99ef7><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-91d99ef7><span class="text" data-v-91d99ef7><!----> 算法 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-91d99ef7><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-91d99ef7><div class="VPMenu" data-v-91d99ef7 data-v-929f42ac><div class="items" data-v-929f42ac><!--[--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E7%AE%97%E6%B3%95.html" data-v-14947616><!--[-->算法<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E5%AD%97%E7%AC%A6%E4%B8%B2.html" data-v-14947616><!--[-->字符串<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E6%95%B0%E7%BB%84.html" data-v-14947616><!--[-->数组<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/hash.html" data-v-14947616><!--[-->hash<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E5%9B%9E%E6%BA%AF.html" data-v-14947616><!--[-->回溯<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E5%8F%8C%E6%8C%87%E9%92%88.html" data-v-14947616><!--[-->双指针<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E5%8A%A8%E8%A7%84.html" data-v-14947616><!--[-->动态规划<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E6%A0%88%E4%B8%8E%E9%98%9F%E5%88%97.html" data-v-14947616><!--[-->栈与队列<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E9%93%BE%E8%A1%A8.html" data-v-14947616><!--[-->链表<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E4%BA%8C%E5%8F%89%E6%A0%91.html" data-v-14947616><!--[-->二叉树<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/algorithm/%E5%B7%A5%E4%BD%9C%E7%AE%97%E6%B3%95.html" data-v-14947616><!--[-->工作算法<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-0242e50a data-v-91d99ef7><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-91d99ef7><span class="text" data-v-91d99ef7><!----> 源码 <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="text-icon" data-v-91d99ef7><path d="M12,16c-0.3,0-0.5-0.1-0.7-0.3l-6-6c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l5.3,5.3l5.3-5.3c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-6,6C12.5,15.9,12.3,16,12,16z"></path></svg></span></button><div class="menu" data-v-91d99ef7><div class="VPMenu" data-v-91d99ef7 data-v-929f42ac><div class="items" data-v-929f42ac><!--[--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/source/vue/reactive.html" data-v-14947616><!--[-->vue源码<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/source/emotion/emotion.html" data-v-14947616><!--[-->emotion源码<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-929f42ac data-v-14947616><a class="VPLink link" href="/source/%E7%BB%A7%E6%89%BF.html" data-v-14947616><!--[-->class继承源码<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-954b9eb4 data-v-86908c91><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-86908c91 data-v-8e509618 data-v-8d2ccdf6><span class="check" data-v-8d2ccdf6><span class="icon" data-v-8d2ccdf6><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-8e509618><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-8e509618><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-954b9eb4 data-v-f1933c8b data-v-00013f81><!--[--><a class="VPSocialLink no-icon" href="https://github.com/tangtts/learning-blogs" aria-label="github" target="_blank" rel="noopener" data-v-00013f81 data-v-b4ca3d49><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://juejin.cn/user/308289423282296" aria-label="掘金" target="_blank" rel="noopener" data-v-00013f81 data-v-b4ca3d49><svg t="1690806613078" class="icon" viewBox="0 0 1272 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2313" width="36" height="36"><path d="M729.641 165.277l-95.314-75.152-99.563 78.527-5.179 4.16 104.742 83.503 105.09-83.503-9.776-7.535z m361.212 291.472L634.065 816.943l-456.498-359.99-67.442 54.174 523.94 413.118 524.23-413.35-67.442-54.146zM634.065 485.96L385.478 290.006l-67.412 54.117 315.97 249.168 316.29-249.4-67.413-54.146L634.065 485.96z" p-id="2314" fill="#8a8a8a"></path></svg></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-954b9eb4 data-v-3a2d24ed data-v-91d99ef7><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-91d99ef7><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="icon" data-v-91d99ef7><circle cx="12" cy="12" r="2"></circle><circle cx="19" cy="12" r="2"></circle><circle cx="5" cy="12" r="2"></circle></svg></button><div class="menu" data-v-91d99ef7><div class="VPMenu" data-v-91d99ef7 data-v-929f42ac><!----><!--[--><!--[--><!----><div class="group" data-v-3a2d24ed><div class="item appearance" data-v-3a2d24ed><p class="label" data-v-3a2d24ed>Appearance</p><div class="appearance-action" data-v-3a2d24ed><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="toggle dark mode" aria-checked="false" data-v-3a2d24ed data-v-8e509618 data-v-8d2ccdf6><span class="check" data-v-8d2ccdf6><span class="icon" data-v-8d2ccdf6><!--[--><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="sun" data-v-8e509618><path d="M12,18c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6S15.3,18,12,18zM12,8c-2.2,0-4,1.8-4,4c0,2.2,1.8,4,4,4c2.2,0,4-1.8,4-4C16,9.8,14.2,8,12,8z"></path><path d="M12,4c-0.6,0-1-0.4-1-1V1c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,3.6,12.6,4,12,4z"></path><path d="M12,24c-0.6,0-1-0.4-1-1v-2c0-0.6,0.4-1,1-1s1,0.4,1,1v2C13,23.6,12.6,24,12,24z"></path><path d="M5.6,6.6c-0.3,0-0.5-0.1-0.7-0.3L3.5,4.9c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C6.2,6.5,5.9,6.6,5.6,6.6z"></path><path d="M19.8,20.8c-0.3,0-0.5-0.1-0.7-0.3l-1.4-1.4c-0.4-0.4-0.4-1,0-1.4s1-0.4,1.4,0l1.4,1.4c0.4,0.4,0.4,1,0,1.4C20.3,20.7,20,20.8,19.8,20.8z"></path><path d="M3,13H1c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S3.6,13,3,13z"></path><path d="M23,13h-2c-0.6,0-1-0.4-1-1s0.4-1,1-1h2c0.6,0,1,0.4,1,1S23.6,13,23,13z"></path><path d="M4.2,20.8c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C4.7,20.7,4.5,20.8,4.2,20.8z"></path><path d="M18.4,6.6c-0.3,0-0.5-0.1-0.7-0.3c-0.4-0.4-0.4-1,0-1.4l1.4-1.4c0.4-0.4,1-0.4,1.4,0s0.4,1,0,1.4l-1.4,1.4C18.9,6.5,18.6,6.6,18.4,6.6z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" viewbox="0 0 24 24" class="moon" data-v-8e509618><path d="M12.1,22c-0.3,0-0.6,0-0.9,0c-5.5-0.5-9.5-5.4-9-10.9c0.4-4.8,4.2-8.6,9-9c0.4,0,0.8,0.2,1,0.5c0.2,0.3,0.2,0.8-0.1,1.1c-2,2.7-1.4,6.4,1.3,8.4c2.1,1.6,5,1.6,7.1,0c0.3-0.2,0.7-0.3,1.1-0.1c0.3,0.2,0.5,0.6,0.5,1c-0.2,2.7-1.5,5.1-3.6,6.8C16.6,21.2,14.4,22,12.1,22zM9.3,4.4c-2.9,1-5,3.6-5.2,6.8c-0.4,4.4,2.8,8.3,7.2,8.7c2.1,0.2,4.2-0.4,5.8-1.8c1.1-0.9,1.9-2.1,2.4-3.4c-2.5,0.9-5.3,0.5-7.5-1.1C9.2,11.4,8.1,7.7,9.3,4.4z"></path></svg><!--]--></span></span></button></div></div></div><div class="group" data-v-3a2d24ed><div class="item social-links" data-v-3a2d24ed><div class="VPSocialLinks social-links-list" data-v-3a2d24ed data-v-00013f81><!--[--><a class="VPSocialLink no-icon" href="https://github.com/tangtts/learning-blogs" aria-label="github" target="_blank" rel="noopener" data-v-00013f81 data-v-b4ca3d49><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg></a><a class="VPSocialLink no-icon" href="https://juejin.cn/user/308289423282296" aria-label="掘金" target="_blank" rel="noopener" data-v-00013f81 data-v-b4ca3d49><svg t="1690806613078" class="icon" viewBox="0 0 1272 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2313" width="36" height="36"><path d="M729.641 165.277l-95.314-75.152-99.563 78.527-5.179 4.16 104.742 83.503 105.09-83.503-9.776-7.535z m361.212 291.472L634.065 816.943l-456.498-359.99-67.442 54.174 523.94 413.118 524.23-413.35-67.442-54.146zM634.065 485.96L385.478 290.006l-67.412 54.117 315.97 249.168 316.29-249.4-67.413-54.146L634.065 485.96z" p-id="2314" fill="#8a8a8a"></path></svg></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-954b9eb4 data-v-de1c8d87><span class="container" data-v-de1c8d87><span class="top" data-v-de1c8d87></span><span class="middle" data-v-de1c8d87></span><span class="bottom" data-v-de1c8d87></span></span></button></div></div></div></div><!----></header><!----><!----><div class="VPContent is-home" id="VPContent" data-v-0afd77a3 data-v-cff546c3><div class="VPHome" data-v-cff546c3 data-v-776ea5a8><!--[--><!--]--><div class="VPHero has-image VPHomeHero" data-v-776ea5a8 data-v-64ce3d6e><div class="container" data-v-64ce3d6e><div class="main" data-v-64ce3d6e><!--[--><h1 class="name" data-v-64ce3d6e><span class="clip" data-v-64ce3d6e>🦆 好大鸭</span></h1><p class="text" data-v-64ce3d6e>TSK 个人博客</p><p class="tagline" data-v-64ce3d6e>📓 记录知识, 记录成长</p><!--]--><div class="actions" data-v-64ce3d6e><!--[--><div class="action" data-v-64ce3d6e><a class="VPButton medium brand" href="/HTML/%E6%A0%87%E7%AD%BE.html" data-v-64ce3d6e data-v-9fe3f16f>🦌 前端</a></div><div class="action" data-v-64ce3d6e><a class="VPButton medium alt" href="/backend/node.html" data-v-64ce3d6e data-v-9fe3f16f>🔥 后端</a></div><!--]--></div></div><div class="image" data-v-64ce3d6e><div class="image-container" data-v-64ce3d6e><div class="image-bg" data-v-64ce3d6e></div><!--[--><!--[--><img class="VPImage image-src" src="/B.Duck.svg" alt="网页的logo图标" data-v-feac331c><!--]--><!--]--></div></div></div></div><!--[--><!--]--><!--[--><!--]--><div class="VPFeatures VPHomeFeatures" data-v-776ea5a8 data-v-00280257><div class="container" data-v-00280257><div class="items" data-v-00280257><!--[--><div class="grid-3 item" data-v-00280257><a class="VPLink link no-icon VPFeature" href="/HTML/%E6%A0%87%E7%AD%BE.html" data-v-00280257 data-v-78d54043><!--[--><article class="box" data-v-78d54043><div class="icon" data-v-78d54043>🛠️</div><h2 class="title" data-v-78d54043>💻 前端</h2><p class="details" data-v-78d54043>🟧HTML、🟥CSS、🟨JS、🟦TS、🟩VUE、REACT ...</p><!----></article><!--]--></a></div><div class="grid-3 item" data-v-00280257><a class="VPLink link no-icon VPFeature" href="/backend/node.html" data-v-00280257 data-v-78d54043><!--[--><article class="box" data-v-78d54043><div class="icon" data-v-78d54043>⚽</div><h2 class="title" data-v-78d54043>💾 后端</h2><p class="details" data-v-78d54043>🚀 Nest、🐬Mysql、🥦Redis...</p><!----></article><!--]--></a></div><div class="grid-3 item" data-v-00280257><a class="VPLink link no-icon VPFeature" href="/skill/html.html" data-v-00280257 data-v-78d54043><!--[--><article class="box" data-v-78d54043><div class="icon" data-v-78d54043>🔥</div><h2 class="title" data-v-78d54043>❤️ 其他</h2><p class="details" data-v-78d54043>设计模式,代码规范,函数编程...</p><!----></article><!--]--></a></div><!--]--></div></div></div><!--[--><!--]--><div style="position:relative;" data-v-776ea5a8><div></div></div></div></div><!----><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"html_包含块.md\":\"c16c6296\",\"js_其他.md\":\"a024f3dc\",\"react_other.md\":\"37229874\",\"css_canvas.md\":\"c423e8a6\",\"html_标签.md\":\"0d696e88\",\"html_bfc.md\":\"66e86d4c\",\"js_dom.md\":\"b6ee7e91\",\"html_其他.md\":\"804b25e6\",\"js_字符串.md\":\"e959672b\",\"js_数字.md\":\"e522e571\",\"js_后端.md\":\"4115465f\",\"react_ts.md\":\"a9cbcc85\",\"css_svg.md\":\"44f08493\",\"js_对象.md\":\"0d82751d\",\"js_class.md\":\"5088e8c2\",\"js_函数.md\":\"cb5bf0d4\",\"vue_components_countto.md\":\"a52fd9d1\",\"vue_components_imgpreview.md\":\"728f1e84\",\"backend_任务队列.md\":\"2711e878\",\"react_周边库.md\":\"7528c3c3\",\"css_scss.md\":\"28d371a5\",\"source_emotion_emotion.md\":\"b58497ee\",\"vue_components_tab.md\":\"b2145944\",\"skill_工具包.md\":\"0fe309b4\",\"vue_functions_clickoutside.md\":\"3908134b\",\"algorithm_工作算法.md\":\"68d7a99c\",\"skill_代码规范.md\":\"9f57daee\",\"vue_components_日历.md\":\"8b0cbba1\",\"html_像素.md\":\"e4c58df6\",\"vue_other.md\":\"ec3f83df\",\"vue_components_日期选择器.md\":\"92144822\",\"skill_英语.md\":\"e1f60282\",\"skill_git.md\":\"0ca88150\",\"nest_helper_swagger.md\":\"8087c003\",\"skill_正则.md\":\"ad17de07\",\"vue_components_collapse.md\":\"54d30379\",\"backend_加密.md\":\"899303e7\",\"nest_nest_index.md\":\"7872fdc0\",\"java_api_number.md\":\"03c61c49\",\"vue_components_drag.md\":\"539f34ea\",\"java_api_string.md\":\"434576a1\",\"java_api_其他知识.md\":\"84fe7e9c\",\"java_api_注解.md\":\"b50623da\",\"java_spring-boot_lombok.md\":\"3bf29efe\",\"java_base.md\":\"bfb79774\",\"java_api_错误.md\":\"98138bf4\",\"java_spring-boot_校验.md\":\"37e870af\",\"java_spring-boot_index.md\":\"c34adef9\",\"nest_helper_redis.md\":\"83ce7bd5\",\"java_spring-boot_mybatis.md\":\"42c2fc18\",\"nest_helper_jwt.md\":\"2fb135be\",\"backend_nginx.md\":\"21e45b72\",\"backend_mock.md\":\"ce42b4a2\",\"js_数组.md\":\"e0420bbd\",\"backend_node.md\":\"665446e4\",\"algorithm_hash.md\":\"0f7bf833\",\"nest_helper_joi.md\":\"45b860be\",\"java_api_反射.md\":\"11512d55\",\"algorithm_双指针.md\":\"c61d70cc\",\"algorithm_二叉树.md\":\"55ed1935\",\"java_api_集合.md\":\"2a419218\",\"vue_plugins_loading.md\":\"a44afcbe\",\"nest_helper_config.md\":\"20261eb3\",\"vue_components_scrolllist.md\":\"1d7f47b5\",\"algorithm_动规.md\":\"b3dc708e\",\"js_日期.md\":\"3c090199\",\"js_window.md\":\"6f02224c\",\"algorithm_字符串.md\":\"ed4b19d3\",\"backend_sql.md\":\"767137ee\",\"backend_promise.md\":\"ea3d589f\",\"vue_components_flip.md\":\"680b3932\",\"vue_components_infinitescroll.md\":\"c4f05eb8\",\"skill_快捷键.md\":\"be1b7011\",\"vue_functions_snackbar.md\":\"20701947\",\"vue_components_tree.md\":\"c8c9508e\",\"vue_components_swipper.md\":\"0dbc0edb\",\"source_vue_component.md\":\"0a50935f\",\"skill_js.md\":\"ec4c1c27\",\"vue_plugins_lazy.md\":\"d31e66d5\",\"skill_html.md\":\"e2cd23c1\",\"skill_linux.md\":\"ee07cf3f\",\"algorithm_算法.md\":\"20c28e16\",\"backend_docker.md\":\"80447324\",\"source_vue_ref.md\":\"bedf544f\",\"algorithm_链表.md\":\"7c6b1bb9\",\"source_vue_defineasynccomponent.md\":\"6bfb6540\",\"source_vue_h.md\":\"df0b5c3c\",\"source_vue_keepalive.md\":\"87be22a5\",\"source_vue_lifecycle.md\":\"5ff67203\",\"source_vue_provide.md\":\"2c024dbb\",\"source_vue_reactive.md\":\"8bc7d149\",\"ts_index.md\":\"a2eb6675\",\"algorithm_数组.md\":\"174eec83\",\"source_vue_slots.md\":\"4b9ae70f\",\"java_api_atomicinteger.md\":\"59e30c11\",\"source_vue_renderer.md\":\"ac00ce19\",\"source_vue_watch.md\":\"345a3f1d\",\"vue_components_放大镜.md\":\"3bba463e\",\"java_api_class.md\":\"a3d19804\",\"nest_helper_typeorm.md\":\"dcfc700d\",\"source_vue_computed.md\":\"8f29a843\",\"skill_网络.md\":\"be2976ec\",\"vue_functions_usefetch.md\":\"4bdd42c4\",\"vue_components_剪裁图片.md\":\"cdfc71d9\",\"index.md\":\"3178d033\",\"java_api_date.md\":\"bf46d941\",\"backend_jwt.md\":\"bb9eb746\",\"vue_components_上传图片.md\":\"046ca854\",\"vue_functions_usestorage.md\":\"c89b82f7\",\"skill_设计模式.md\":\"a2e4ad93\",\"vue_components_虚拟滚动.md\":\"7b0b8e68\",\"java_api_io.md\":\"f612fb21\",\"nest_helper_校验.md\":\"e8e2c9ed\",\"source_vue_render.md\":\"e8addaee\",\"algorithm_栈与队列.md\":\"87827ddd\",\"react_hook.md\":\"4e24e1d1\",\"source_继承.md\":\"ff24a401\",\"java_api_array.md\":\"c8c2750b\",\"vue_components_watermark.md\":\"684aa165\",\"algorithm_回溯.md\":\"98160aa9\",\"vue_directives_ripple.md\":\"4a8da40b\",\"css_基础.md\":\"edb993ac\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"「🦆TSK的博客」\",\"description\":\"tsk Blog\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"outline\":\"deep\",\"nav\":[{\"text\":\"前端\",\"items\":[{\"text\":\"HTML\",\"link\":\"/HTML/标签\",\"activeMatch\":\"/HTML/标签\"},{\"text\":\"CSS\",\"link\":\"/CSS/基础\",\"activeMatch\":\"/CSS/基础\"},{\"text\":\"JS\",\"link\":\"/JS/window\",\"activeMatch\":\"/JS/window\"},{\"text\":\"TS\",\"link\":\"/TS/index\",\"activeMatch\":\"/TS/index\"},{\"text\":\"Vue\",\"link\":\"/Vue/directives/ripple\",\"activeMatch\":\"/Vue/\"},{\"text\":\"React\",\"link\":\"/React/ts\",\"activeMatch\":\"/React/\"}]},{\"text\":\"后端\",\"items\":[{\"text\":\"node\",\"link\":\"/backend/node\",\"activeMatch\":\"/backend/node\"},{\"text\":\"promise\",\"link\":\"/backend/promise\",\"activeMatch\":\"/backend/promise\"},{\"text\":\"Cookie/session/jwt\",\"link\":\"/backend/jwt\",\"activeMatch\":\"/backend/jwt\"},{\"text\":\"任务队列\",\"link\":\"/backend/任务队列\",\"activeMatch\":\"/backend/任务队列\"},{\"text\":\"加密\",\"link\":\"/backend/加密\",\"activeMatch\":\"/backend/加密\"},{\"text\":\"mock\",\"link\":\"/backend/mock\",\"activeMatch\":\"/backend/mock\"},{\"text\":\"nest\",\"link\":\"/nest/nest/index\",\"activeMatch\":\"/nest/\"},{\"text\":\"java\",\"link\":\"/java/base\",\"activeMatch\":\"/java/base\"},{\"text\":\"sql\",\"link\":\"/backend/sql\",\"activeMatch\":\"/backend/sql\"},{\"text\":\"nginx\",\"link\":\"/backend/nginx\",\"activeMatch\":\"/backend/nginx\"},{\"text\":\"docker\",\"link\":\"/backend/docker\",\"activeMatch\":\"/backend/docker\"}]},{\"text\":\"其他\",\"items\":[{\"text\":\"html技巧\",\"link\":\"/skill/html\",\"activeMatch\":\"/skill/html\"},{\"text\":\"js技巧\",\"link\":\"/skill/js\",\"activeMatch\":\"/skill/js\"},{\"text\":\"网络\",\"link\":\"/skill/网络\",\"activeMatch\":\"/skill/网络\"},{\"text\":\"正则\",\"link\":\"/skill/正则\",\"activeMatch\":\"/skill/正则\"},{\"text\":\"设计模式\",\"link\":\"/skill/设计模式\",\"activeMatch\":\"/skill/设计模式\"},{\"text\":\"代码规范\",\"link\":\"/skill/代码规范\",\"activeMatch\":\"/skill/代码规范\"},{\"text\":\"git\",\"link\":\"/skill/git\",\"activeMatch\":\"/skill/git\"},{\"text\":\"快捷键\",\"link\":\"/skill/快捷键\",\"activeMatch\":\"/skill/快捷键\"},{\"text\":\"linux\",\"link\":\"/skill/linux\",\"activeMatch\":\"/skill/linux\"},{\"text\":\"\",\"items\":[{\"text\":\"英语\",\"link\":\"/skill/英语\",\"activeMatch\":\"/skill/英语\"}]},{\"text\":\"\",\"items\":[{\"text\":\"工具包\",\"link\":\"/skill/工具包\",\"activeMatch\":\"/skill/工具包\"}]}]},{\"text\":\"算法\",\"items\":[{\"text\":\"算法\",\"link\":\"/algorithm/算法\",\"activeMatch\":\"/algorithm/算法\"},{\"text\":\"字符串\",\"link\":\"/algorithm/字符串\",\"activeMatch\":\"/algorithm/字符串\"},{\"text\":\"数组\",\"link\":\"/algorithm/数组\",\"activeMatch\":\"/algorithm/数组\"},{\"text\":\"hash\",\"link\":\"/algorithm/hash\",\"activeMatch\":\"/algorithm/hash\"},{\"text\":\"回溯\",\"link\":\"/algorithm/回溯\",\"activeMatch\":\"/algorithm/回溯\"},{\"text\":\"双指针\",\"link\":\"/algorithm/双指针\",\"activeMatch\":\"/algorithm/双指针\"},{\"text\":\"动态规划\",\"link\":\"/algorithm/动规\",\"activeMatch\":\"/algorithm/动规\"},{\"text\":\"栈与队列\",\"link\":\"/algorithm/栈与队列\",\"activeMatch\":\"/algorithm/栈与队列\"},{\"text\":\"链表\",\"link\":\"/algorithm/链表\",\"activeMatch\":\"/algorithm/链表\"},{\"text\":\"二叉树\",\"link\":\"/algorithm/二叉树\",\"activeMatch\":\"/algorithm/二叉树\"},{\"text\":\"工作算法\",\"link\":\"/algorithm/工作算法\",\"activeMatch\":\"/algorithm/工作算法\"}]},{\"text\":\"源码\",\"items\":[{\"text\":\"vue源码\",\"link\":\"/source/vue/reactive\",\"activeMatch\":\"/source/vue\"},{\"text\":\"emotion源码\",\"link\":\"/source/emotion/emotion\",\"activeMatch\":\"/source/emotion\"},{\"text\":\"class继承源码\",\"link\":\"/source/继承\",\"activeMatch\":\"/source/继承\"}]}],\"sidebar\":{\"HTML\":[{\"text\":\"HTML\",\"collapsed\":true,\"items\":[{\"text\":\"标签\",\"link\":\"/HTML/标签\"},{\"text\":\"BFC\",\"link\":\"/HTML/BFC\"},{\"text\":\"包含块\",\"link\":\"/HTML/包含块\"},{\"text\":\"像素\",\"link\":\"/HTML/像素\"},{\"text\":\"其他\",\"link\":\"/HTML/其他\"}]}],\"CSS\":[{\"text\":\"CSS\",\"collapsed\":true,\"items\":[{\"text\":\"基础知识\",\"link\":\"/CSS/基础\"},{\"text\":\"scss\",\"link\":\"/CSS/scss\"},{\"text\":\"canvas\",\"link\":\"/CSS/canvas\"},{\"text\":\"svg\",\"link\":\"/CSS/svg\"}]}],\"JS\":[{\"text\":\"JS\",\"collapsed\":true,\"items\":[{\"text\":\"windowApi\",\"link\":\"/JS/window\"},{\"text\":\"对象\",\"link\":\"/JS/对象\"},{\"text\":\"函数\",\"link\":\"/JS/函数\"},{\"text\":\"数组\",\"link\":\"/JS/数组\"},{\"text\":\"数字\",\"link\":\"/JS/数字\"},{\"text\":\"字符串\",\"link\":\"/JS/字符串\"},{\"text\":\"日期\",\"link\":\"/JS/日期\"},{\"text\":\"DOM\",\"link\":\"/JS/DOM\"},{\"text\":\"class\",\"link\":\"/JS/class\"},{\"text\":\"其他\",\"link\":\"/JS/其他\"}]}],\"React\":[{\"text\":\"React\",\"items\":[{\"text\":\"ts\",\"link\":\"/React/ts\"},{\"text\":\"hook\",\"link\":\"/React/hook\"},{\"text\":\"关于\",\"link\":\"/React/other\"},{\"text\":\"周边库\",\"link\":\"/React/周边库\"}]}],\"Vue\":[{\"text\":\"Vue\",\"items\":[{\"text\":\"指令\",\"collapsed\":false,\"items\":[{\"text\":\"水波纹\",\"link\":\"/Vue/directives/ripple\"}]},{\"text\":\"组件\",\"collapsed\":false,\"items\":[{\"text\":\"🌲树\",\"link\":\"/Vue/components/tree\"},{\"text\":\"折叠\",\"link\":\"/Vue/components/collapse\"},{\"text\":\"无限滚动\",\"link\":\"/Vue/components/scrollList\"},{\"text\":\"无限滚动2\",\"link\":\"/Vue/components/InfiniteScroll\"},{\"text\":\"轮播\",\"link\":\"/Vue/components/swipper\"},{\"text\":\"图片预览\",\"link\":\"/Vue/components/imgPreview\"},{\"text\":\"水印\",\"link\":\"/Vue/components/watermark\"},{\"text\":\"tab\",\"link\":\"/Vue/components/tab\"},{\"text\":\"drag\",\"link\":\"/Vue/components/drag\"},{\"text\":\"虚拟滚动\",\"link\":\"/Vue/components/虚拟滚动\"},{\"text\":\"flip\",\"link\":\"/Vue/components/flip\"},{\"text\":\"日历\",\"link\":\"/Vue/components/日历\"},{\"text\":\"剪裁图片\",\"link\":\"/Vue/components/剪裁图片\"},{\"text\":\"上传图片\",\"link\":\"/Vue/components/上传图片\"},{\"text\":\"放大镜\",\"link\":\"/Vue/components/放大镜\"},{\"text\":\"日期选择器\",\"link\":\"/Vue/components/日期选择器\"},{\"text\":\"🎠countTo\",\"link\":\"/Vue/components/countTo\"}]},{\"text\":\"插件\",\"collapsed\":false,\"items\":[{\"text\":\"Lazy\",\"link\":\"/Vue/plugins/lazy\"},{\"text\":\"loading\",\"link\":\"/Vue/plugins/loading\"}]},{\"text\":\"函数\",\"collapsed\":false,\"items\":[{\"text\":\"clickOutSide\",\"link\":\"/Vue/functions/clickOutSide\"},{\"text\":\"消息条\",\"link\":\"/Vue/functions/snackBar\"},{\"text\":\"useStorage\",\"link\":\"/Vue/functions/useStorage\"},{\"text\":\"useFetch\",\"link\":\"/Vue/functions/useFetch\"}]},{\"text\":\"其他\",\"link\":\"/Vue/other\"}]}],\"nest\":[{\"text\":\"nest\",\"link\":\"/nest/nest/index\"},{\"text\":\"typeorm\",\"link\":\"/nest/helper/typeorm\"},{\"text\":\"swagger\",\"link\":\"/nest/helper/swagger\"},{\"text\":\"校验\",\"link\":\"/nest/helper/校验\"},{\"text\":\"jwt\",\"link\":\"/nest/helper/jwt\"},{\"text\":\"config\",\"link\":\"/nest/helper/config\"},{\"text\":\"redis\",\"link\":\"/nest/helper/redis\"},{\"text\":\"JOI\",\"link\":\"/nest/helper/joi\"}],\"backend\":[{\"text\":\"后端\",\"collapsed\":false,\"items\":[{\"text\":\"node\",\"link\":\"/backend/node\"},{\"text\":\"promise\",\"link\":\"/backend/promise\"},{\"text\":\"Cookie/session/jwt\",\"link\":\"/backend/jwt\"},{\"text\":\"任务队列\",\"link\":\"/backend/任务队列\"},{\"text\":\"加密\",\"link\":\"/backend/加密\"},{\"text\":\"mock\",\"link\":\"/backend/mock\"},{\"text\":\"nest\",\"link\":\"/nest/nest/index\"},{\"text\":\"java\",\"link\":\"/java/base\"},{\"text\":\"sql\",\"link\":\"/backend/sql\"},{\"text\":\"nginx\",\"link\":\"/backend/nginx\"},{\"text\":\"docker\",\"link\":\"/backend/docker\"}]}],\"java\":[{\"text\":\"基础\",\"link\":\"/java/base\"},{\"text\":\"api\",\"collapsed\":true,\"items\":[{\"text\":\"其他知识\",\"link\":\"/java/api/其他知识\"},{\"text\":\"class\",\"link\":\"/java/api/class\"},{\"text\":\"时间\",\"link\":\"/java/api/date\"},{\"text\":\"数字\",\"link\":\"/java/api/number\"},{\"text\":\"数组\",\"link\":\"/java/api/array\"},{\"text\":\"字符串\",\"link\":\"/java/api/string\"},{\"text\":\"错误\",\"link\":\"/java/api/错误\"},{\"text\":\"集合\",\"link\":\"/java/api/集合\"},{\"text\":\"io\",\"link\":\"/java/api/io\"},{\"text\":\"AtomicInteger\",\"link\":\"/java/api/AtomicInteger\"},{\"text\":\"注解\",\"link\":\"/java/api/注解\"},{\"text\":\"反射\",\"link\":\"/java/api/反射\"}]},{\"text\":\"spring-boot\",\"collapsed\":true,\"items\":[{\"text\":\"spring 基础\",\"link\":\"/java/spring-boot/index\"},{\"text\":\"lombok\",\"link\":\"/java/spring-boot/lombok\"},{\"text\":\"mybatis\",\"link\":\"/java/spring-boot/mybatis\"}]}],\"skill\":[{\"text\":\"其他\",\"collapsed\":true,\"items\":[{\"text\":\"html技巧\",\"link\":\"/skill/html\"},{\"text\":\"js技巧\",\"link\":\"/skill/js\"},{\"text\":\"网络\",\"link\":\"/skill/网络\"},{\"text\":\"正则\",\"link\":\"/skill/正则\"},{\"text\":\"设计模式\",\"link\":\"/skill/设计模式\"},{\"text\":\"代码规范\",\"link\":\"/skill/代码规范\"},{\"text\":\"git\",\"link\":\"/skill/git\"},{\"text\":\"快捷键\",\"link\":\"/skill/快捷键\"},{\"text\":\"linux\",\"link\":\"/skill/linux\"},{\"text\":\"英语\",\"link\":\"/skill/英语\"},{\"text\":\"工具包\",\"link\":\"/skill/工具包\"}]}],\"source/vue\":[{\"text\":\"\",\"collapsed\":true,\"items\":[{\"text\":\"reactive原理\",\"link\":\"/source/vue/reactive\"},{\"text\":\"ref原理\",\"link\":\"/source/vue/ref\"},{\"text\":\"computed原理\",\"link\":\"/source/vue/computed\"},{\"text\":\"watch原理\",\"link\":\"/source/vue/watch\"},{\"text\":\"h\",\"link\":\"/source/vue/h\"},{\"text\":\"renderer\",\"link\":\"/source/vue/renderer\"},{\"text\":\"render\",\"link\":\"/source/vue/render\"},{\"text\":\"组件\",\"link\":\"/source/vue/component\"},{\"text\":\"生命周期\",\"link\":\"/source/vue/lifecycle\"},{\"text\":\"插槽\",\"link\":\"/source/vue/slots\"},{\"text\":\"异步组件\",\"link\":\"/source/vue/defineAsyncComponent\"},{\"text\":\"provide/inject\",\"link\":\"/source/vue/provide\"},{\"text\":\"keepAlive\",\"link\":\"/source/vue/keepAlive\"}]}]},\"lastUpdated\":{\"text\":\"Updated at\",\"formatOptions\":{\"dateStyle\":\"full\",\"timeStyle\":\"medium\"}},\"search\":{\"provider\":\"algolia\",\"options\":{\"appId\":\"TOPK106WWZ\",\"apiKey\":\"50b82dd45925c0f9623ca6461c459a40\",\"indexName\":\"tsk\"}},\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/tangtts/learning-blogs\"},{\"icon\":{\"svg\":\"<svg t=\\\"1690806613078\\\" class=\\\"icon\\\" viewBox=\\\"0 0 1272 1024\\\" version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" p-id=\\\"2313\\\" width=\\\"36\\\" height=\\\"36\\\"><path d=\\\"M729.641 165.277l-95.314-75.152-99.563 78.527-5.179 4.16 104.742 83.503 105.09-83.503-9.776-7.535z m361.212 291.472L634.065 816.943l-456.498-359.99-67.442 54.174 523.94 413.118 524.23-413.35-67.442-54.146zM634.065 485.96L385.478 290.006l-67.412 54.117 315.97 249.168 316.29-249.4-67.413-54.146L634.065 485.96z\\\" p-id=\\\"2314\\\" fill=\\\"#8a8a8a\\\"></path></svg>\"},\"link\":\"https://juejin.cn/user/308289423282296\",\"ariaLabel\":\"掘金\"}]},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}");</script>
</body>
</html>