ایجاد یک اپلیکیشن Modern React: Vite + TypeScript + ESLint + Tailwind + shadcn/ui و Zustand

در این راهنما، روند راه اندازی یک برنامه React با جدیدترین ویژگی ها و کتابخانه های محبوب را مرور خواهیم کرد. ما از React 19، React Router، Tailwind CSS، shadcn/ui، ESLint با Prettier و Zustand برای مدیریت حالت استفاده خواهیم کرد. در پایان این آموزش، یک پروژه کاملاً پیکربندی شده آماده برای توسعه خواهید داشت.
راه اندازی پروژه
بیایید با ایجاد یک پروژه React جدید با استفاده از Vite شروع کنیم، که تجربه توسعه سریعتر و کمتری را ارائه میکند.
npm create vite@latest my-react-app -- --template react-ts
cd my-react-app
این دستور یک پروژه React جدید با پشتیبانی TypeScript ایجاد می کند. حالا بیایید وابستگی های لازم را نصب کنیم:
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
یک فایل جدید ایجاد کنید src/store.ts
برای فروشگاه شرایط ما:
import create from 'zustand';
interface AppState {
count: number;
increment: () => void;
decrement: () => void;
}
export const useAppStore = create<AppState>((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 (
<div className='p-4'>
<h1 className='text-2xl font-bold mb-4'>Homeh1>
<p className='mb-4'>Count: {count}p>
<Button onClick={increment} className='mr-2'>IncrementButton>
<Button onClick={decrement}>DecrementButton>
div>
);
}
function About() {
return <div className='p-4'>
<h1 className='text-2xl font-bold'>Abouth1>
div>;
}
function App() {
return (
<Router>
<div className='p-4'>
<nav className='mb-4'>
<Link to="https://dev.to/" className='mr-4'>HomeLink>
<Link to="https://dev.to/about">AboutLink>
nav>
<Routes>
<Route path="https://dev.to/" element={<Home />} />
<Route path="https://dev.to/about" element={<About />} />
Routes>
div>
Router>
);
}
export default App;
اجرای برنامه
اکنون می توانید برنامه خود را با استفاده از دستور زیر اجرا کنید:
npm run dev
با این کار سرور توسعه راه اندازی می شود و می توانید برنامه خود را در آن مشاهده کنید http://localhost:5173
.
نتیجه گیری
اکنون یک برنامه React مدرن با React 19، React Router، Tailwind CSS، shadcn/ui، ESLint با Prettier و Zustand راه اندازی شده است. این راهاندازی یک پایه محکم برای ساخت برنامههای React مقیاسپذیر و قابل نگهداری فراهم میکند.
کد نویسی مبارک!