创建现代 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 (
    
      Home
      Count: {count}
      
      
    
  );
}
function About() {
  return 
    About
  ;
}
function App() {
  return (
    
      
        
        
           } />
           } />
         
      
     
  );
}
export default App;运行应用程序
现在您可以使用以下命令运行您的应用程序:
npm run dev
这将启动开发服务器,您可以在“http://localhost:5173”查看您的应用程序。
结论
现在,您已使用 React 19、React Router、Tailwind CSS、shadcn/ui、带有 Prettier 的 ESLint 和 Zustand 设置了一个现代 React 应用程序。此设置为构建可扩展且可维护的 React 应用程序奠定了坚实的基础。
祝你编码愉快!