---
title: App.[tj]sx
sidebar_position: 1
---
# App.[tj]sx

应用使用[自控路由](/guides/basic-features/routes.html#self-controlled-routing)时的入口标识符。

`App.[tj]sx` 并不是实际的应用入口，Modern.js 会自动生成真正的构建打包的入口文件, 内容大致如下：

```js
import React from 'react';
import ReactDOM from 'react-dom/client';
import { createApp, bootstrap } from '@modern-js/runtime';
// App.[jt]sx
import App from '@_modern_js_src/App';
// runtime plugin
import { router } from '@modern-js/runtime/plugins';

const IS_BROWSER = typeof window !== 'undefined' && window.name !== 'nodejs';
const MOUNT_ID = 'root';

let AppWrapper = null;

function render() {
  AppWrapper = createApp({
    plugins: [
     router({...{"serverBase":["/"]}, ...App.config?.router}),
    ]
  })(App)
  if (IS_BROWSER) {
    bootstrap(AppWrapper, MOUNT_ID, null, ReactDOM);
  }
  return AppWrapper
}

AppWrapper = render();
export default AppWrapper;
```

:::note
在多入口的场景下，每个入口都可以拥有独立的 `App.[jt]sx`，详见[入口](/guides/concept/entries)。

:::
