Least React
最小限で、Reactを構築する。
Directory Structure
.
├── index.html
├── package.json
├── src
│ ├── app.tsx
│ └── main.tsx
└── vite.config.tsCreate directory
sh
mkdir least_reactsh
cd least_reactInstall
sh
pnpm add react react-domsh
pnpm add -D @types/react @types/react-dom vite @vitejs/plugin-react-swcEnvironment Build
html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Least React</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>vite.config.ts
ts
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
export default defineConfig({
plugins: [react()],
})app.tsx
tsx
import React from 'react'
const App = () => {
return <h1>Least React</h1>
}
export default Appmain.tsx
tsx
import React from 'react'
import { createRoot } from 'react-dom/client'
import App from './app'
const rootElement = document.getElementById('root')
const root = rootElement ? createRoot(rootElement) : console.error('Root element not found')
if (root) {
root.render(
<React.StrictMode>
<App />
</React.StrictMode>,
)
}package.json
json
{
"name": "@apps/least_react",
"scripts": {
"dev": "vite --host"
},
"dependencies": {
"react": "^18.3.1",
"react-dom": "^18.3.1"
},
"devDependencies": {
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@vitejs/plugin-react-swc": "^3.7.2",
"vite": "^6.0.0"
}
}Run
sh
pnpm run devAccesse Browser
http://localhost:5173/