# 嵌套应用 > H3 具有一个原生的 mount 方法,用于将嵌套的子应用添加到主实例中。 通常,H3 项目由一个或多个文件中定义的多个[事件处理器](/guide/basics/handler)组成(甚至可以[懒加载](/guide/basics/handler#lazy-handlers),以加快启动速度)。 有时将多个 `H3` 实例结合起来,或者使用其他团队使用的 HTTP 框架并将其挂载到主应用实例,会更加方便。H3 提供了一个原生的 [`.mount`](/guide/api/h3#h3mount) 方法来实现这一点。 ## 嵌套的 H3 应用 H3 原生支持挂载子应用。挂载后,子应用的路由和中间件会与基础 URL 前缀**合并**到主应用实例中。 ```js import { H3, serve } from "h3"; const nestedApp = new H3() .use((event) => { event.res.headers.set("x-api", "1"); }) .get("/**:slug", (event) => ({ pathname: event.url.pathname, slug: event.context.params?.slug, })); const app = new H3().mount("/api", nestedApp); ``` 在上例中,当访问 `/api/test` URL 时,`pathname` 将是 `/api/test`(实际路径),而 `slug` 将是 `/test`(通配符参数)。 全局配置和钩子不会从嵌套应用中继承。请考虑始终从主应用中设置它们。 ## 嵌套的 Web 标准应用 将一个兼容 `.fetch` 的服务器实例(例如 [Hono](https://hono.dev/) 或 [Elysia](https://elysiajs.com/))挂载到基础 URL 下。 传递给被挂载应用的 `request.url` 会移除基础前缀。 ```js import { H3 } from "h3"; import { Hono } from "hono"; import { Elysia } from "elysia"; const app = new H3() .mount( "/elysia", new Elysia().get("/test", () => "Hello Elysia!"), ) .mount( "/hono", new Hono().get("/test", (c) => c.text("Hello Hono!")), ); ``` 类似地,你可以在 [Hono](https://hono.dev/docs/api/hono#mount) 或 [Elysia](https://elysiajs.com/patterns/mount#mount-1) 中挂载 H3 应用。