<!DOCTYPE html><html lang="zh-CN" class="dark" data-af-archive-notice="本站为 2x.nz 的 React Router 应急站历史归档，已归档，仅做怀旧展示"><head><style data-af-archive-style>
html[data-af-archive-notice]::before,
[data-af-archive-watermark] {
  box-sizing: border-box;
  display: block !important;
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 2147483647;
  max-width: min(420px, calc(100vw - 32px));
  padding: 7px 11px;
  color: rgba(248, 250, 252, .78) !important;
  background: rgba(15, 23, 42, .48) !important;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px;
  box-shadow: 0 4px 18px rgba(0, 0, 0, .14);
  backdrop-filter: blur(5px);
  pointer-events: none !important;
  user-select: none !important;
  contain: paint;
  font: 500 13px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  line-height: 1.35;
  text-align: right;
  white-space: normal;
}
html[data-af-archive-notice]::before {
  content: attr(data-af-archive-notice) !important;
}
@media (max-width: 640px) {
  html[data-af-archive-notice]::before,
  [data-af-archive-watermark] { right: 10px; bottom: 10px; max-width: calc(100vw - 20px); padding: 6px 9px; font-size: 11px; }
}
</style><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#171717"/><link rel="icon" href="https://q2.qlogo.cn/headimg_dl?dst_uin=2726730791&amp;spec=140"/><link rel="preconnect" href="https://raw-posts.2x.nz" crossorigin=""/><link rel="preconnect" href="https://q2.qlogo.cn"/><meta name="author" content="AcoFork"/><meta name="keywords" content="二叉树树,二叉树树官网,博客,AcoFork"/><meta name="baidu-site-verification" content="codeva-aEC99Uu69k"/><meta property="og:site_name" content="《二叉树树》官方网站"/><meta property="og:locale" content="zh_CN"/><link rel="alternate" type="application/rss+xml" title="二叉树树的博客" href="/posts/rss.xml"/><link rel="alternate" type="application/rss+xml" title="二叉树树论坛" href="/forum/rss.xml"/><link rel="sitemap" type="application/xml" href="/sitemap.xml"/><title>《二叉树树》官方网站</title><meta name="description" content="二叉树树的个人网站 —— 包含技术博客、论坛社区、AI 生图、实用在线工具等，记录分享技术与生活。"/><meta property="og:title" content="《二叉树树》官方网站"/><meta property="og:description" content="二叉树树的个人网站 —— 包含技术博客、论坛社区、AI 生图、实用在线工具等，记录分享技术与生活。"/><meta property="og:url" content="https://af-archive-react-router.pages.dev"/><meta property="og:type" content="website"/><meta property="og:image" content="https://af-archive-react-router.pages.dev/files/img/official.png"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:image" content="https://af-archive-react-router.pages.dev/files/img/official.png"/><meta name="robots" content="noindex, nofollow, noarchive"><link rel="modulepreload" href="/assets/manifest-842fe7cf.js"/><link rel="modulepreload" href="/assets/entry.client-DphuamQK.js"/><link rel="modulepreload" href="/assets/rolldown-runtime-QTnfLwEv.js"/><link rel="modulepreload" href="/assets/vendor-react-CrNYajAI.js"/><link rel="modulepreload" href="/assets/components-BFa8UEmh.js"/><link rel="modulepreload" href="/assets/errorBoundaries-DIUfR6zK.js"/><link rel="modulepreload" href="/assets/ui-shared-4dBkV80i.js"/><link rel="modulepreload" href="/assets/root-BhWCNbz9.js"/><link rel="modulepreload" href="/assets/lib-Dr74VH8i.js"/><link rel="modulepreload" href="/assets/constants-CSAGrgcF.js"/><link rel="modulepreload" href="/assets/lib-shared-DREU8RwU.js"/><link rel="modulepreload" href="/assets/api-Dxy33V7b.js"/><link rel="modulepreload" href="/assets/client-only-DI7o3ETP.js"/><script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://af-archive-react-router.pages.dev/#website","url":"https://af-archive-react-router.pages.dev/","name":"《二叉树树》官方网站","alternateName":["二叉树树","AcoFork Blog"],"description":"二叉树树的个人网站 —— 包含技术博客、论坛社区、AI 生图、实用在线工具等，记录分享技术与生活。","inLanguage":"zh-CN","publisher":{"@id":"https://af-archive-react-router.pages.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://af-archive-react-router.pages.dev/posts?q={search_term_string}"},"query-input":"required name=search_term_string"}},{"@type":"Organization","@id":"https://af-archive-react-router.pages.dev/#organization","name":"二叉树树","alternateName":"AcoFork","url":"https://af-archive-react-router.pages.dev/","logo":{"@type":"ImageObject","url":"https://af-archive-react-router.pages.dev/files/img/official.png","width":1200,"height":630},"sameAs":["https://space.bilibili.com/325903362","https://github.com/afoim"]},{"@type":"Person","@id":"https://af-archive-react-router.pages.dev/#person","name":"AcoFork","alternateName":"二叉树树","url":"https://af-archive-react-router.pages.dev/","memberOf":{"@id":"https://af-archive-react-router.pages.dev/#organization"},"sameAs":["https://space.bilibili.com/325903362","https://github.com/afoim","https://www.ifdian.net/a/acofork"]}]}</script><script type="application/ld+json">{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"首页","item":"https://af-archive-react-router.pages.dev/"}]}</script><link rel="stylesheet" href="/assets/root-BxWiseNW.css"/><script>try{localStorage.setItem('forum-api-base-url','/forum')}catch(e){}</script></head><body class="flex min-h-screen flex-col"><div data-af-archive-watermark aria-label="旧站归档提示">本站为 2x.nz 的 React Router 应急站历史归档，已归档，仅做怀旧展示</div><script data-af-archive-script>
(() => {
  const message = "本站为 2x.nz 的 React Router 应急站历史归档，已归档，仅做怀旧展示";
  const robotsContent = 'noindex, nofollow, noarchive';

  const ensureArchiveNotice = () => {
    const head = document.head;
    const body = document.body;
    if (!head || !body) return;

    const archiveStyle = head.querySelector('style[data-af-archive-style]');
    if (archiveStyle && archiveStyle !== head.lastElementChild) head.append(archiveStyle);

    let robots = head.querySelector('meta[name="robots"]');
    if (!robots) {
      robots = document.createElement('meta');
      robots.name = 'robots';
      head.append(robots);
    }
    if (robots.content !== robotsContent) robots.content = robotsContent;

    if (!body.querySelector('[data-af-archive-watermark]')) {
      const notice = document.createElement('div');
      notice.dataset.afArchiveWatermark = '';
      notice.setAttribute('aria-label', '旧站归档提示');
      notice.textContent = message;
      body.append(notice);
    }

    document.documentElement.removeAttribute('data-af-archive-notice');
  };

  ensureArchiveNotice();
  new MutationObserver(ensureArchiveNotice).observe(document.documentElement, {
    subtree: true,
    childList: true,
    attributes: true,
    attributeFilter: ['content', 'name']
  });
})();
</script><script>window.__reactRouterContext = {"basename":"/","future":{"unstable_enableNodeReadableStream":false,"unstable_optimizeDeps":false},"routeDiscovery":{"mode":"initial"},"ssr":false,"isSpaMode":true};window.__reactRouterContext.stream = new ReadableStream({start(controller){window.__reactRouterContext.streamController = controller;}}).pipeThrough(new TextEncoderStream());</script><script type="module" async="">import "/assets/manifest-842fe7cf.js";
import * as route0 from "/assets/root-BhWCNbz9.js";
  
  window.__reactRouterRouteModules = {"root":route0};

import("/assets/entry.client-DphuamQK.js");</script><!--$--><script>window.__reactRouterContext.streamController.enqueue("[{\"_1\":2,\"_3\":-5,\"_4\":-5},\"loaderData\",{\"_5\":6},\"actionData\",\"errors\",\"root\",{\"_7\":8},\"isProd\",false]\n");</script><!--$--><script>window.__reactRouterContext.streamController.close();</script><!--/$--><!--/$--></body></html>