48 lines
30 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US" dir="ltr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>使用指南 | ZiuChen</title>
<meta name="description" content="Unlimited Progress.">
<link rel="preload stylesheet" href="/assets/style.78ea14e7.css" as="style">
<script type="module" src="/assets/app.a781c5eb.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.4001cd3b.js">
<link rel="modulepreload" href="/assets/chunks/theme.8e68dbd8.js">
<link rel="modulepreload" href="/assets/project_ClipboardManager_guide_index.md.f8c33081.lean.js">
<link rel="icon" href="/logo.png">
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
</head>
<body>
<div id="app"><div class="Layout" data-v-c9141815><!--[--><!--]--><!--[--><span tabindex="-1" data-v-f364a430></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-f364a430> Skip to content </a><!--]--><!----><!----><div class="VPLocalNav fixed reached-top" data-v-c9141815 data-v-7b873ae9><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-7b873ae9 data-v-c2e82416><button data-v-c2e82416>Return to top</button><!----></div></div><!----><div class="VPContent" id="VPContent" data-v-c9141815 data-v-a52b0863><div class="VPDoc" data-v-a52b0863 data-v-4ad9891f><!--[--><!--]--><div class="container" data-v-4ad9891f><!----><div class="content" data-v-4ad9891f><div class="content-container" data-v-4ad9891f><!--[--><!--]--><!----><main class="main" data-v-4ad9891f><div style="position:relative;" class="vp-doc _project_ClipboardManager_guide_" data-v-4ad9891f><div><h1 id="使用指南" tabindex="-1">使用指南 <a class="header-anchor" href="#使用指南" aria-label="Permalink to &quot;使用指南&quot;"></a></h1><h2 id="快捷键一览" tabindex="-1">快捷键一览 <a class="header-anchor" href="#快捷键一览" aria-label="Permalink to &quot;快捷键一览&quot;"></a></h2><ul><li>按下<code>空格</code>进入多选模式,连续向下选择 支持<strong>跨标签</strong>合并复制/粘贴</li><li><code>鼠标左键</code>复制并粘贴 <code>鼠标右键</code>仅复制</li><li><code></code> <code></code>选中历史记录 按下<code></code>直接粘贴 <code>Ctrl+C</code>仅复制</li><li><code></code> <code></code>切换分类 <code>Tab</code>键连续切换分类</li><li><code>Ctrl+数字键</code>快速粘贴 <code>Alt+数字键</code>快速复制</li><li><code>输入任意字母或数字/Ctrl+F</code>聚焦搜索框并输入 支持使用<code>空格</code>同时检索多个关键词</li><li><code>Ctrl/Command+鼠标左键</code>点击文本/图片/文件 直接进入预览/打开所在文件夹 <span class="VPBadge warning" data-v-dfac367e><!--[-->插件会员<!--]--></span></li><li><code>`</code>快速展开/收起预览面板 <span class="VPBadge warning" data-v-dfac367e><!--[-->插件会员<!--]--></span></li><li><code>H</code> <code>J</code> <code>K</code> <code>L</code>键盘操作模式下Vim快捷键 支持上下左右移动 <span class="VPBadge warning" data-v-dfac367e><!--[-->插件会员<!--]--></span></li></ul><h2 id="如何手动安装clipboard-event-handler" tabindex="-1">如何手动安装<code>clipboard-event-handler</code> <a class="header-anchor" href="#如何手动安装clipboard-event-handler" aria-label="Permalink to &quot;如何手动安装`clipboard-event-handler`&quot;"></a></h2><p>新版 <code>超级剪贴板</code> 对剪贴板内容更新事件的监听,依赖于可执行文件:</p><ul><li>Windows系统: <code>clipboard-event-handler-win32.exe</code></li><li>Linux系统: <code>clipboard-event-handler-linux</code></li><li>MacOS系统: <code>clipboard-event-handler-mac</code></li></ul><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>适配了Apple M1芯片的监听程序 <a href="https://github.com/wangyw6716/clipboard-event-handler-mac-apple-silicon-arm64-M1" target="_blank" rel="noreferrer">clipboard-event-handler-mac-apple-silicon-arm64-M1</a></p><p>由于此仓库不在超级剪贴板开发者维护范围内,请自行注意辨别文件安全性。</p></div><p>插件每次启动时,将自动检查剪贴板数据文件所在目录下是否存在剪贴板监听程序,如存在,则使用性能更优秀的新的监听策略,如不存在,则仍然使用旧的策略。</p><hr><h3 id="_1-下载监听程序" tabindex="-1">1. 下载监听程序 <a class="header-anchor" href="#_1-下载监听程序" aria-label="Permalink to &quot;1. 下载监听程序&quot;"></a></h3><p><a href="https://pan.baidu.com/s/14GJIXWDU2F4jsqDDq73aFg?pwd=Ziuc" target="_blank" rel="noreferrer">点击此处(百度网盘)</a>或访问<a href="https://github.com/sudhakar3697/node-clipboard-event/tree/master/platform" target="_blank" rel="noreferrer">node-clipboard-event</a>手动下载<strong>对应系统</strong>的文件,并将其移动到<strong>剪贴板数据文件所在目录</strong></p><p>插件使用的二进制文件拷贝自<a href="https://github.com/sudhakar3697/node-clipboard-event" target="_blank" rel="noreferrer">node-clipboard-event</a>,请避免从其它不可信的来源下载文件,并在下载文件后比较哈希,有能力的也可以从仓库源代码自行编译</p><h3 id="_2-找到剪贴板数据文件所在目录" tabindex="-1">2. 找到剪贴板数据文件所在目录 <a class="header-anchor" href="#_2-找到剪贴板数据文件所在目录" aria-label="Permalink to &quot;2. 找到剪贴板数据文件所在目录&quot;"></a></h3><p>进入设置页(顶部导航栏/齿轮图标),点击数据库路径这一项右侧的打开按钮</p><h3 id="_3-将监听程序拷贝到目录中" tabindex="-1">3. 将监听程序拷贝到目录中 <a class="header-anchor" href="#_3-将监听程序拷贝到目录中" aria-label="Permalink to &quot;3. 将监听程序拷贝到目录中&quot;"></a></h3><h4 id="windows" tabindex="-1">Windows: <a class="header-anchor" href="#windows" aria-label="Permalink to &quot;Windows:&quot;"></a></h4><p><img src="/assets/gi3.c83cee76.png" alt=""></p><h4 id="linux" tabindex="-1">Linux: <a class="header-anchor" href="#linux" aria-label="Permalink to &quot;Linux:&quot;"></a></h4><p><img src="/assets/gi3-2.8cc1f8a9.png" alt=""></p><h4 id="mac" tabindex="-1">Mac: <a class="header-anchor" href="#mac" aria-label="Permalink to &quot;Mac:&quot;"></a></h4><p><img src="/assets/gi3-3.47dffc9b.png" alt=""></p><h3 id="_4-注意事项" tabindex="-1">4. 注意事项 <a class="header-anchor" href="#_4-注意事项" aria-label="Permalink to &quot;4. 注意事项&quot;"></a></h3><h4 id="macos-的特殊配置" tabindex="-1">MacOS 的特殊配置 <a class="header-anchor" href="#macos-的特殊配置" aria-label="Permalink to &quot;MacOS 的特殊配置&quot;"></a></h4><p>针对<code>MacOS</code>系统,在将剪贴板监听程序拷贝到指定目录后,请在重启插件后,<strong>进入设置页,检查监听程序是否生效</strong></p><p>如果监听程序未生效,可能是:</p><ol><li>需要下载对应芯片的监听程序</li><li>需要对程序进行签名与授权</li></ol><p><strong>1. 签名</strong></p><p>打开终端输入以下命令</p><div class="language-sh vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">sh</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#B392F0;">sudo</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">codesign</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">--force</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">--deep</span><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">--sign</span><span style="color:#E1E4E8;"> </span><span style="color:#9ECBFF;">-</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#6F42C1;">sudo</span><span style="color:#24292E;"> </span><span style="color:#032F62;">codesign</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">--force</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">--deep</span><span style="color:#24292E;"> </span><span style="color:#005CC5;">--sign</span><span style="color:#24292E;"> </span><span style="color:#032F62;">-</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/assets/sign-mac.2c3e272f.png" alt=""></p><p>然后将此目录中的<code>clipboard-event-handler-mac</code>文件拖入终端执行命令</p><p><img src="/assets/sign-mac-2.5861d44c.png" alt=""></p><p><strong>2. 授权</strong></p><p><em>左上角🍎</em> -&gt; <em>系统偏好设置</em> -&gt; <em>安全性与隐私</em> -&gt; <em>通用</em> -&gt; <em>点击允许</em></p><p><img src="/assets/mac-chmod.bf888724.jpg" alt=""></p><h4 id="监听程序不生效如何排查" tabindex="-1">监听程序不生效如何排查? <a class="header-anchor" href="#监听程序不生效如何排查" aria-label="Permalink to &quot;监听程序不生效如何排查?&quot;"></a></h4><p>请务必完整按照教程完成安装,如果程序仍未生效,请按照如下方式排查:</p><ul><li>监听程序拷贝完成后,需要重启插件方可生效</li><li>设置页<code>剪贴板监听程序状态</code>选项是否为<code>已安装</code></li><li>系统进程管理器中是否存在<code>clipboard-event-handler-xxxxx</code>的进程</li></ul><p>使用中遇到任何问题,请尝试通过论坛或入群反馈</p><h2 id="如何创造自己的功能按钮" tabindex="-1">如何创造自己的功能按钮 <a class="header-anchor" href="#如何创造自己的功能按钮" aria-label="Permalink to &quot;如何创造自己的功能按钮&quot;"></a></h2><p>超级剪贴板为用户提供了自定义功能按钮的能力</p><p>这让<code>超级剪贴板</code>真正变得“超级”起来,用户可以通过编写<code>json</code>实现<strong>携带数据跳转到任何其他插件</strong>,这项功能给<code>超级剪贴板</code>带来了无限可能。</p><p>插件中,默认内置了若干使用样例:</p><ul><li>讯飞OCR识别</li><li>百度搜索</li><li>百度识图</li><li>统计文本字数</li><li>颜色管理</li><li>识别图片中二维码</li><li>上传到图床</li><li>翻译</li></ul><p>下面我将从这些样例出发对这项功能做简单介绍:</p><p>这项功能的原理是<code>utools.redirect()</code>,在不分离插件的情况下,在不同插件之间的跳转体验是连贯的。</p><p><code>百度搜索</code>为例,是通过<code>网页快开</code>提供的关键词实现的我们可以编写以下json</p><div class="language-json vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#E1E4E8;">{</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;id&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;custom.1663490859&quot;</span><span style="color:#E1E4E8;">,</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;title&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;百度搜索&quot;</span><span style="color:#E1E4E8;">,</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;icon&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;🔍&quot;</span><span style="color:#E1E4E8;">,</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;match&quot;</span><span style="color:#E1E4E8;">: [</span><span style="color:#9ECBFF;">&quot;text&quot;</span><span style="color:#E1E4E8;">],</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;command&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;redirect:百度一下&quot;</span></span>
<span class="line"><span style="color:#E1E4E8;">}</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#24292E;">{</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;id&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;custom.1663490859&quot;</span><span style="color:#24292E;">,</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;title&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;百度搜索&quot;</span><span style="color:#24292E;">,</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;icon&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;🔍&quot;</span><span style="color:#24292E;">,</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;match&quot;</span><span style="color:#24292E;">: [</span><span style="color:#032F62;">&quot;text&quot;</span><span style="color:#24292E;">],</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;command&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;redirect:百度一下&quot;</span></span>
<span class="line"><span style="color:#24292E;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><p>可以实现从剪贴板直接跳转到<code>网页快开</code>,也即打开百度并搜索当前选中的文本内容。</p><p>除了使用简单的字符串匹配不同的内容,<code>超级剪贴板</code>还支持使用正则表达式,以<code>上传到图床</code>功能为例:</p><div class="language-json vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">json</span><pre class="shiki github-dark vp-code-dark"><code><span class="line"><span style="color:#E1E4E8;">{</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;id&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;custom.1663490864&quot;</span><span style="color:#E1E4E8;">,</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;title&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;上传到图床&quot;</span><span style="color:#E1E4E8;">,</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;icon&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;🚀&quot;</span><span style="color:#E1E4E8;">,</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;match&quot;</span><span style="color:#E1E4E8;">: [</span><span style="color:#9ECBFF;">&quot;image&quot;</span><span style="color:#E1E4E8;">, { </span><span style="color:#79B8FF;">&quot;type&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;file&quot;</span><span style="color:#E1E4E8;">, </span><span style="color:#79B8FF;">&quot;regex&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;.(?:jpg|jpeg|png)$&quot;</span><span style="color:#E1E4E8;"> }],</span></span>
<span class="line"><span style="color:#E1E4E8;"> </span><span style="color:#79B8FF;">&quot;command&quot;</span><span style="color:#E1E4E8;">: </span><span style="color:#9ECBFF;">&quot;redirect:上传到图床&quot;</span></span>
<span class="line"><span style="color:#E1E4E8;">}</span></span></code></pre><pre class="shiki github-light vp-code-light"><code><span class="line"><span style="color:#24292E;">{</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;id&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;custom.1663490864&quot;</span><span style="color:#24292E;">,</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;title&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;上传到图床&quot;</span><span style="color:#24292E;">,</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;icon&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;🚀&quot;</span><span style="color:#24292E;">,</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;match&quot;</span><span style="color:#24292E;">: [</span><span style="color:#032F62;">&quot;image&quot;</span><span style="color:#24292E;">, { </span><span style="color:#005CC5;">&quot;type&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;file&quot;</span><span style="color:#24292E;">, </span><span style="color:#005CC5;">&quot;regex&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;.(?:jpg|jpeg|png)$&quot;</span><span style="color:#24292E;"> }],</span></span>
<span class="line"><span style="color:#24292E;"> </span><span style="color:#005CC5;">&quot;command&quot;</span><span style="color:#24292E;">: </span><span style="color:#032F62;">&quot;redirect:上传到图床&quot;</span></span>
<span class="line"><span style="color:#24292E;">}</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><p>这个功能除了可以匹配图片,还可以将符合正则的图片文件匹配上,在匹配上的历史记录上展示<code>上传到图床</code>按钮,携带数据跳转到图床插件,一键上传。</p><p>需要注意的是,因为自定义功能按钮实现的是<strong>携带数据跳转不同插件</strong>,所以<code>redirect</code>后的内容并不应该是普通关键字(普通关键字仅能作为插件入口,而不能携带数据),而应该是<code>文本</code>/<code>图片</code>/<code>文件或文件夹</code></p><p><img src="/assets/gi4.e4051a3e.png" alt=""><img src="/assets/gi5.f517b425.png" alt=""></p><ul><li><code>id</code>: <code>String</code> 全局唯一 必须以<code>custom</code>开头 建议以时间戳为后缀</li><li><code>title</code>: <code>String</code> 鼠标悬停时展示的文本</li><li><code>icon</code>: <code>String</code> 展示在插件内的图标</li><li><code>match</code>: <code>&lt;String | Object&gt;[]</code> 匹配模式</li><li><code>command</code>: <code>String</code> 执行跳转的关键字 前缀<code>redirect:</code>是必须的</li></ul><p>在未来的版本更新中,<code>超级剪贴板</code>将开放更多自定义功能给高级用户,帮助你更高效率的管理、使用剪贴板。</p></div></div></main><footer class="VPDocFooter" data-v-4ad9891f data-v-3ec2f4a2><!--[--><!--]--><div class="edit-info" data-v-3ec2f4a2><div class="edit-link" data-v-3ec2f4a2><a class="VPLink link vp-external-link-icon no-icon edit-link-button" href="https://github.com/ZiuChen/ZiuChen.github.io/edit/main/docs/project/ClipboardManager/guide/index.md" target="_blank" rel="noreferrer" data-v-3ec2f4a2><!--[--><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24" class="edit-link-icon" aria-label="edit icon" data-v-3ec2f4a2><path d="M18,23H4c-1.7,0-3-1.3-3-3V6c0-1.7,1.3-3,3-3h7c0.6,0,1,0.4,1,1s-0.4,1-1,1H4C3.4,5,3,5.4,3,6v14c0,0.6,0.4,1,1,1h14c0.6,0,1-0.4,1-1v-7c0-0.6,0.4-1,1-1s1,0.4,1,1v7C21,21.7,19.7,23,18,23z"></path><path d="M8,17c-0.3,0-0.5-0.1-0.7-0.3C7,16.5,6.9,16.1,7,15.8l1-4c0-0.2,0.1-0.3,0.3-0.5l9.5-9.5c1.2-1.2,3.2-1.2,4.4,0c1.2,1.2,1.2,3.2,0,4.4l-9.5,9.5c-0.1,0.1-0.3,0.2-0.5,0.3l-4,1C8.2,17,8.1,17,8,17zM9.9,12.5l-0.5,2.1l2.1-0.5l9.3-9.3c0.4-0.4,0.4-1.1,0-1.6c-0.4-0.4-1.2-0.4-1.6,0l0,0L9.9,12.5z M18.5,2.5L18.5,2.5L18.5,2.5z"></path></svg> Edit this page on GitHub<!--]--></a></div><div class="last-updated" data-v-3ec2f4a2><p class="VPLastUpdated" data-v-3ec2f4a2 data-v-a4c9a2aa>Updated Date: <time datetime="2023-10-15T15:44:32.000Z" data-v-a4c9a2aa></time></p></div></div><nav class="prev-next" data-v-3ec2f4a2><div class="pager" data-v-3ec2f4a2><!----></div><div class="pager" data-v-3ec2f4a2><a class="pager-link next" href="/project/ClipboardManager/" data-v-3ec2f4a2><span class="desc" data-v-3ec2f4a2>Next page</span><span class="title" data-v-3ec2f4a2>超级剪贴板</span></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter" data-v-c9141815 data-v-9d485890><div class="container" data-v-9d485890><p class="message" data-v-9d485890>Released under the MIT License.</p><p class="copyright" data-v-9d485890>Copyright © 2019-present Ziu Chen</p></div></footer><!--[--><!--]--></div></div>
<script>window.__VP_HASH_MAP__=JSON.parse("{\"article_【2023】青训营 - 前端练习题汇总解析.md\":\"aa190ddf\",\"article_深入vue3源码看看vue.use后究竟发生了什么.md\":\"2b658e3e\",\"article_深入理解proxy与reflect.md\":\"401b4485\",\"article_深入理解浏览器缓存机制.md\":\"a6bea3f7\",\"index.md\":\"fe8c7cbb\",\"article_【字节跳动】前端面试题总结.md\":\"42768ab4\",\"project_smartwordbreak_log_index.md\":\"87149106\",\"project_smartwordbreak_statement_index.md\":\"1b715e22\",\"self_index.md\":\"491f0451\",\"works_contribution.md\":\"b5f9d194\",\"article_深入javascript数据类型.md\":\"6747103c\",\"project_markdown_shortcut_index.md\":\"1699a2d5\",\"article_一文读懂事件冒泡与事件捕获.md\":\"856738eb\",\"article_一文读懂伪类与伪元素.md\":\"dbc07ad4\",\"article_一文读懂函数中this指向问题.md\":\"12bfc833\",\"works_opensource.md\":\"9605f7f0\",\"article_【用友金融】前端面试题总结.md\":\"7d18297e\",\"article_深入理解浏览器运行原理.md\":\"7e8ced80\",\"project_clipboardmanager_guide_index.md\":\"f8c33081\",\"article_浅析defineproperty与proxy实现的双向绑定.md\":\"b8099d26\",\"note_react hooks.md\":\"2ef245f9\",\"note_redux.md\":\"cd32f22c\",\"project_clipboardmanager_index.md\":\"dc026d9b\",\"note_javascript.md\":\"7aa1be4e\",\"project_clipboardmanager_statement_index.md\":\"ca46cedc\",\"note_mysql.md\":\"723f9f3c\",\"article_【快手】深入理解前端面试题.md\":\"cd45f043\",\"project_jsrunner_index.md\":\"88004f21\",\"article_从0实现一个年度报告.md\":\"3f21cc7d\",\"note_ssr.md\":\"4af2a999\",\"project_clipboardmanager_log_index.md\":\"8031dc7b\",\"project_clipboardmanager_vip_index.md\":\"16aa5707\",\"project_smartwordbreak_index.md\":\"f4239657\",\"note_react router.md\":\"20bbcc63\",\"note_javascriptenhanced.md\":\"4355fe68\",\"article_彻底搞懂对象的数据属性描述符、存储属性描述符.md\":\"b0c08981\",\"project_jsrunner_log_index.md\":\"3a1c4f34\",\"note_front-end engineering.md\":\"76688693\",\"project_markdown_index.md\":\"1353487e\",\"project_markdown_log_index.md\":\"fd1f5d3a\",\"note_css.md\":\"81f696ed\",\"note_react.md\":\"9f1f5481\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"ZiuChen\",\"description\":\"Unlimited Progress.\",\"base\":\"/\",\"head\":[],\"appearance\":true,\"themeConfig\":{\"logo\":\"/logo.png\",\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"我的项目\",\"items\":[{\"text\":\"超级剪贴板\",\"link\":\"/project/ClipboardManager/\"},{\"text\":\"超级Markdown\",\"link\":\"/project/Markdown/\"},{\"text\":\"超级JavaScript\",\"link\":\"/project/JSRunner/\"},{\"text\":\"超级分词\",\"link\":\"/project/SmartWordBreak/\"}]},{\"text\":\"开源作品\",\"items\":[{\"text\":\"个人作品\",\"link\":\"/works/opensource\"},{\"text\":\"社区贡献\",\"link\":\"/works/contribution\"}]},{\"text\":\"学习笔记\",\"items\":[{\"text\":\"JavaScript基础\",\"link\":\"/note/JavaScript\"},{\"text\":\"CSS基础\",\"link\":\"/note/CSS\"},{\"text\":\"JavaScript进阶\",\"link\":\"/note/JavaScriptEnhanced\"},{\"text\":\"前端工程化\",\"link\":\"/note/Front-end Engineering\"},{\"text\":\"服务端渲染\",\"link\":\"/note/SSR\"},{\"text\":\"React基础\",\"link\":\"/note/React\"},{\"text\":\"React Hooks\",\"link\":\"/note/React Hooks\"},{\"text\":\"Redux\",\"link\":\"/note/Redux\"},{\"text\":\"React Router\",\"link\":\"/note/React Router\"},{\"text\":\"MySQL\",\"link\":\"/note/MySQL\"}]},{\"text\":\"个人介绍\",\"link\":\"/self/\"}],\"sidebar\":[{\"text\":\"我的项目\",\"items\":[{\"text\":\"超级剪贴板\",\"link\":\"/project/ClipboardManager/\"},{\"text\":\"超级Markdown\",\"link\":\"/project/Markdown/\"},{\"text\":\"超级JavaScript\",\"link\":\"/project/JSRunner/\"},{\"text\":\"超级分词\",\"link\":\"/project/SmartWordBreak/\"}]},{\"text\":\"开源作品\",\"collapsed\":true,\"items\":[{\"text\":\"个人作品\",\"link\":\"/works/opensource\"},{\"text\":\"社区贡献\",\"link\":\"/works/contribution\"}]},{\"text\":\"文章归档\",\"collapsed\":true,\"items\":[{\"text\":\"【2023】青训营 - 前端练习题汇总解析\",\"link\":\"/article/【2023】青训营 - 前端练习题汇总解析\"},{\"text\":\"【字节跳动】前端面试题总结\",\"link\":\"/article/【字节跳动】前端面试题总结\"},{\"text\":\"【快手】深入理解前端面试题\",\"link\":\"/article/【快手】深入理解前端面试题\"},{\"text\":\"【用友金融】前端面试题总结\",\"link\":\"/article/【用友金融】前端面试题总结\"},{\"text\":\"一文读懂事件冒泡与事件捕获\",\"link\":\"/article/一文读懂事件冒泡与事件捕获\"},{\"text\":\"一文读懂伪类与伪元素\",\"link\":\"/article/一文读懂伪类与伪元素\"},{\"text\":\"一文读懂函数中this指向问题\",\"link\":\"/article/一文读懂函数中this指向问题\"},{\"text\":\"从0实现一个年度报告\",\"link\":\"/article/从0实现一个年度报告\"},{\"text\":\"彻底搞懂对象的数据属性描述符、存储属性描述符\",\"link\":\"/article/彻底搞懂对象的数据属性描述符、存储属性描述符\"},{\"text\":\"浅析defineProperty与Proxy实现的双向绑定\",\"link\":\"/article/浅析defineProperty与Proxy实现的双向绑定\"},{\"text\":\"深入JavaScript数据类型\",\"link\":\"/article/深入JavaScript数据类型\"},{\"text\":\"深入Vue3源码看看Vue.use后究竟发生了什么\",\"link\":\"/article/深入Vue3源码看看Vue.use后究竟发生了什么\"},{\"text\":\"深入理解Proxy与Reflect\",\"link\":\"/article/深入理解Proxy与Reflect\"},{\"text\":\"深入理解浏览器缓存机制\",\"link\":\"/article/深入理解浏览器缓存机制\"},{\"text\":\"深入理解浏览器运行原理\",\"link\":\"/article/深入理解浏览器运行原理\"}]},{\"text\":\"学习笔记\",\"collapsed\":true,\"items\":[{\"text\":\"JavaScript基础\",\"link\":\"/note/JavaScript\"},{\"text\":\"CSS基础\",\"link\":\"/note/CSS\"},{\"text\":\"JavaScript进阶\",\"link\":\"/note/JavaScriptEnhanced\"},{\"text\":\"前端工程化\",\"link\":\"/note/Front-end Engineering\"},{\"text\":\"服务端渲染\",\"link\":\"/note/SSR\"},{\"text\":\"React基础\",\"link\":\"/note/React\"},{\"text\":\"React Hooks\",\"link\":\"/note/React Hooks\"},{\"text\":\"Redux\",\"link\":\"/note/Redux\"},{\"text\":\"React Router\",\"link\":\"/note/React Router\"},{\"text\":\"MySQL\",\"link\":\"/note/MySQL\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/ZiuChen\"},{\"icon\":{\"svg\":\"<svg width=\\\"36\\\" height=\\\"28\\\" viewBox=\\\"0 0 36 28\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M17.5875 6.77268L21.8232 3.40505L17.5875 0.00748237L17.5837 0L13.3555 3.39757L17.5837 6.76894L17.5875 6.77268ZM17.5863 17.3955H17.59L28.5161 8.77432L25.5526 6.39453L17.59 12.6808H17.5863L17.5825 12.6845L9.61993 6.40201L6.66016 8.78181L17.5825 17.3992L17.5863 17.3955ZM17.5828 23.2891L17.5865 23.2854L32.2133 11.7456L35.1768 14.1254L28.5238 19.3752L17.5865 28L0.284376 14.3574L0 14.1291L2.95977 11.7531L17.5828 23.2891Z\\\" fill=\\\"#1E80FF\\\"/></svg>\"},\"link\":\"https://juejin.cn/user/1887205216238477\"}],\"editLink\":{\"pattern\":\"https://github.com/ZiuChen/ZiuChen.github.io/edit/main/docs/:path\",\"text\":\"Edit this page on GitHub\"},\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2019-present Ziu Chen\"},\"lastUpdatedText\":\"Updated Date\",\"search\":{\"provider\":\"algolia\",\"options\":{\"appId\":\"LFZ2CPWWUG\",\"apiKey\":\"b4fd296ea5e467b3ac4a582160ff3122\",\"indexName\":\"ziuchenio\"}}},\"locales\":{},\"scrollOffset\":90,\"cleanUrls\":false}");</script>
</body>
</html>