创建现代 React 应用程序:Vite + TypeScript + ESLint + Tailwind + shadcn/ui 和 Zustand
在本指南中,我们将介绍如何使用最新功能和流行库设置 React 应用程序。我们将使用 React 19、React Router、Tailwind CSS、shadcn/ui、带有 Prettier 的 ESLint 和 Zustand 进行状态管理。在本教程结束时,您将拥有一个完全配置好的项目,可供开发。
设置项目
让我们首先使用 Vite 创建一个新的 React 项目,它提供了更快、更精简的开发体验。
npm create vite@latest my-react-app -- --template react-ts cd my-react-app
此命令创建一个支持 TypeScript 的新 React 项目。现在,让我们安装必要的依赖项:
npm install react@19 react-dom@19 react-router-dom@6 zustand@4 @types/react@19 @types/react-dom@19 npm install -D tailwindcss postcss autoprefixer eslint prettier eslint-config-prettier eslint-plugin-react eslint-plugin-react-hooks @typescript-eslint/eslint-plugin @typescript-eslint/parser
配置 Tailwind CSS
要设置 Tailwind CSS,请运行以下命令:
npx tailwindcss init -p
这将创建一个 `tailwind.config.js` 文件。使用以下内容更新它:
module.exports = { content: [ "./index.html", "./src/**/*.{js,ts,jsx,tsx}", ], theme: { extend: {}, }, plugins: [], }
现在,将 Tailwind 指令添加到你的 `src/index.css` 文件中:
@tailwind base; @tailwind components; @tailwind utilities;
设置 ESLint 和 Prettier
在项目根目录中创建 `.eslintrc.js` 和 `.prettierrc` 文件:
touch .eslintrc.js .prettierrc
在 `.eslintrc.js` 中添加以下内容:
module.exports = { env: { browser: true, es2021: true, }, extends: [ 'eslint:recommended', 'plugin:react/recommended', 'plugin:@typescript-eslint/recommended', 'prettier', ], parser: '@typescript-eslint/parser', parserOptions: { ecmaFeatures: { jsx: true, }, ecmaVersion: 12, sourceType: 'module', }, plugins: ['react', '@typescript-eslint'], rules: { 'react/react-in-jsx-scope': 'off', }, settings: { react: { version: 'detect', }, }, };
对于 `.prettierrc`:
{ "semi": true, "tabWidth": 2, "printWidth": 100, "singleQuote": true, "trailingComma": "all", "jsxSingleQuote": true, "bracketSpacing": true }
安装和配置shadcn/ui
要使用shadcn/ui,我们需要在我们的项目中进行设置:
npx shadcn-ui@latest init
按照提示为您的项目配置 shadcn/ui。这将设置必要的文件和配置。
设置 Zustand
为我们的 Zusand 商店创建一个新文件 `src/store.ts`:
import create from 'zustand'; interface AppState { count: number; increment: () => void; decrement: () => void; } export const useAppStore = create((set) => ({ count: 0, increment: () => set((state) => ({ count: state.count + 1 })), decrement: () => set((state) => ({ count: state.count - 1 })), }));
更新 package.json 脚本
将以下脚本添加到你的“package.json”中:
"scripts": { "dev": "vite", "build": "tsc && vite build", "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"", "lint:fix": "eslint src --ext ts,tsx --fix" }
创建示例应用程序
让我们创建一个简单的应用程序来演示我们设置的用法。更新 `src/App.tsx`:
import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; import { Button } from './components/ui/button'; import { useAppStore } from './store'; function Home() { const { count, increment, decrement } = useAppStore(); return (); } function About() { returnHome
Count: {count}
; } function App() { return (About
); } export default App; } /> } />
运行应用程序
现在您可以使用以下命令运行您的应用程序:
npm run dev
这将启动开发服务器,您可以在“http://localhost:5173”查看您的应用程序。
结论
现在,您已使用 React 19、React Router、Tailwind CSS、shadcn/ui、带有 Prettier 的 ESLint 和 Zustand 设置了一个现代 React 应用程序。此设置为构建可扩展且可维护的 React 应用程序奠定了坚实的基础。
祝你编码愉快!