آموزش جامع React.js و Node.js

راهنمای کامل توسعه برنامه‌های Full-Stack از صفر تا صد

مقدمه

این آموزش شما را با دنیای توسعه Full-Stack با استفاده از دو فناوری قدرتمند و محبوب، یعنی React.js برای فرانت‌اند (رابط کاربری) و Node.js برای بک‌اند (سمت سرور) آشنا می‌کند. این مسیر یادگیری به صورت گام‌به‌گام طراحی شده تا هم برای مبتدیان و هم برای توسعه‌دهندگان باتجربه مفید باشد.

React.js یک کتابخانه جاوااسکریپت برای ساخت رابط‌های کاربری پویا و کارآمد است، در حالی که Node.js یک محیط اجرایی سمت سرور است که به شما امکان می‌دهد با استفاده از جاوااسکریپت، سرورها و APIهای قدرتمند بسازید. در این آموزش، یاد می‌گیرید چگونه این دو فناوری را به هم متصل کرده و یک پروژه کامل راه‌اندازی کنید.

آموزش React.js

React.js که توسط فیسبوک توسعه یافته، به شما کمک می‌کند تا با رویکرد Component-Based، رابط‌های کاربری ماژولار و قابل استفاده مجدد بسازید. این بخش شامل تمامی مفاهیم از نصب تا بهینه‌سازی است.

۱. راه‌اندازی محیط توسعه

برای شروع، ابتدا باید Node.js و npm (مدیریت بسته Node.js) را نصب کنید.

  1. نصب Node.js:
    • از وب‌سایت رسمی Node.js، نسخه LTS (Long-Term Support) را دانلود و نصب کنید.
    • پس از نصب، در ترمینال یا Command Prompt، نسخه‌ها را بررسی کنید:
      node -v
      npm -v
  2. ایجاد پروژه React:

    از ابزار Vite استفاده می‌کنیم که سریع‌تر و کارآمدتر از create-react-app است:

    npm create vite@latest my-react-app -- --template react
    cd my-react-app
    npm install
    npm run dev

    این دستورات یک پروژه React با Vite ایجاد کرده و سرور توسعه را در http://localhost:5173 اجرا می‌کنند.

  3. ساختار پروژه:
    my-react-app/
      ├── node_modules/
      ├── public/
      │   ├── index.html
      │   ├── favicon.ico
      │   └── vite.svg
      ├── src/
      │   ├── App.jsx
      │   ├── App.css
      │   ├── main.jsx
      │   └── index.css
      ├── package.json
      └── vite.config.js

    فایل main.jsx نقطه ورود برنامه و App.jsx کامپوننت اصلی است.

۲. مفاهیم کلیدی React

  • کامپوننت‌ها (Components):

    هر بخش از رابط کاربری یک کامپوننت است. امروزه بیشتر از کامپوننت‌های تابعی استفاده می‌شود.

    مثال یک کامپوننت تابعی ساده:

    برای استفاده در App.jsx:

    
    import Greeting from './components/Greeting';
    
    function App() {
      return <Greeting name="کاربر" />;
    }
    
    export default App;
                    
  • JSX:

    سینتکس شبیه HTML که در جاوااسکریپت نوشته می‌شود.

    const element = <h1>آموزش JSX</h1>;
  • State و Props:
    • Props: داده‌های ورودی به یک کامپوننت که فقط خواندنی هستند.
    • State: داده‌های داخلی که با useState مدیریت می‌شوند.

      مثال useState:

۳. هوک‌ها (Hooks)

هوک‌ها به کامپوننت‌های تابعی امکان مدیریت state و چرخه حیات را می‌دهند.

  • useState: برای مدیریت state (مثال بالا).
  • useEffect: برای مدیریت side effects.

    مثال fetch کردن داده:

  • useContext: برای دسترسی به داده‌های Context.

۴. مفاهیم پیشرفته React

در این مرحله، به تکنیک‌های پیشرفته برای پروژه‌های پیچیده‌تر می‌پردازیم:

  • مدیریت حالت با Context API:

    برای مدیریت حالت در اپلیکیشن‌های بزرگ، از Context API استفاده کنید.

  • بهینه‌سازی عملکرد:
    • Lazy Loading: برای کاهش زمان بارگذاری.

      مثال:

    • Memoization: از React.memo و useMemo برای جلوگیری از رندر غیرضروری.

      مثال:

  • تست: از Jest و React Testing Library برای تست.

    مثال:

۵. نکات حرفه‌ای React

  • TypeScript: برای تایپ‌دهی دقیق‌تر.
  • Server-Side Rendering (SSR): با Next.js برای بهبود SEO.
  • ابزارهای توسعه: از Webpack، Babel، و ESLint برای بهینه‌سازی.

آموزش Node.js

Node.js یک محیط اجرایی سمت سرور است که امکان اجرای جاوااسکریپت را خارج از مرورگر فراهم می‌کند.

۱. راه‌اندازی محیط و ساخت اولین سرور

  1. نصب Node.js:
    • از Node.js نسخه LTS را نصب کنید.
    • بررسی نسخه:
      node -v
      npm -v
  2. ایجاد پروژه:
    mkdir my-node-app
    cd my-node-app
    npm init -y
  3. سرور ساده:

    مثال:

    با دستور node index.js سرور را اجرا کنید.

۲. ساخت API با Express.js

  • نصب Express:
    npm install express
  • API ساده:

    مثال:

۳. اتصال به پایگاه داده (MongoDB)

  • نصب Mongoose:
    npm install mongoose
  • اتصال و ذخیره داده:

    مثال:

۴. مفاهیم پیشرفته Node.js

در این مرحله، به تکنیک‌های پیشرفته برای توسعه APIهای حرفه‌ای می‌پردازیم:

  • احراز هویت با JWT:

    برای احراز هویت کاربران از JSON Web Tokens استفاده می‌کنیم.

  • مدیریت خطا:

    مثال:

  • امنیت API:

    از helmet برای افزودن لایه‌های امنیتی استفاده کنید:

۵. نکات حرفه‌ای Node.js

  • تست:

    از Supertest برای تست APIها استفاده کنید:

  • بهینه‌سازی:

    از clustering برای مقیاس‌پذیری:

اتصال React و Node.js (Full-Stack)

در این بخش، یاد می‌گیرید چگونه فرانت‌اند (React) و بک‌اند (Node.js) را به یکدیگر متصل کنید.

۱. فعال‌سازی CORS در Node.js

  • نصب cors:
    npm install cors
  • فعال‌سازی CORS:

    مثال:

۲. برقراری ارتباط با API در React

مثال:

مباحث پیشرفته و امنیتی

امنیت در توسعه برنامه‌های وب حیاتی است. این بخش به شما کمک می‌کند تا برنامه‌های ایمن‌تری بسازید.

۱. احراز هویت با JWT

  • نصب jsonwebtoken و bcryptjs:
    npm install jsonwebtoken bcryptjs
  • احراز هویت:

    مثال:

۲. امنیت API و جلوگیری از حملات

  • حملات Injection: از ORMها مانند Mongoose یا Sequelize استفاده کنید.
  • XSS و CSRF: از helmet و csurf استفاده کنید.

    مثال:

استقرار (Deployment)

پس از توسعه، باید برنامه خود را روی سرور مستقر کنید.

  • Docker:

    مثال Dockerfile برای Node.js:

  • پلتفرم‌های ابری: از Heroku، AWS، یا Vercel برای استقرار استفاده کنید.

    مثال استقرار در Vercel (برای React):

    vercel --prod