استفاده از روتینگ در Next.js یک روش بسیار قوی و کاربرپسند برای مدیریت مسیرهای اپلیکیشن شماست. به طور کلی Next.js از قابلیت فایل سیستم روتینگ بهره میبرد، که به شما امکان میدهد تا صفحات مختلف را تنها با اضافه کردن فایلهای جدید به پوشه pages
بسازید. اگر تا به حال با فریمورکهای دیگر کار کرده باشید، متوجه خواهید شد که این قابلیت یکی از سادهترین روشها برای ساختاردهی پروژه است.
در این روش هر فایل جدید که درون پوشه pages
ساخته میشود به صورت خودکار به یک مسیر در اپلیکیشن تبدیل میشود. این ویژگی به شما کمک میکند تا بدون نیاز به تغییرات خاصی در فایل پیکربندی یا استفاده از کتابخانههای اضافی، مدیریت مسیرها را انجام دهید.
برای مثال، اگر فایلی به نام about.js
در پوشه pages
بسازید، میتوانید به آن از طریق مسیر /about
دسترسی پیدا کنید. این روند شامل ساخت یک سیستم تولید خودکار مسیرهاست که تجربه توسعه را بسیار ساده و بی دغدغه میسازد.
همچنین Next.js از قابلیت روتینگ دینامیک هم پشتیبانی میکند که به شما امکان میدهد تا مسیرهای پویایی مانند /users/[id]
ایجاد کنید. این ویژگی برای ساختن صفحات شخصیسازی شده یا پروفایل کاربران بسیار مفید است. همه این امکانات در کنار هم باعث میشود که Next.js به ابزاری بسیار مناسب برای پروژههای متنوع وب تبدیل شود.
استفاده از این امکانات به شما کمک میکند تا توسعه سریعتری داشته باشید و پروژههای پیچیدهتری را راحتتر مدیریت کنید. حال بیایید به یک مثال کاربردی نگاهی بیندازیم که ایمپلیمنتیشن این مفاهیم را نشان میدهد.
مثال ساده از روتینگ در Next.js
// فایل pages/about.js
import React from 'react';
function About() {
return (
<div>
<h1>About Page</h1>
<p>Welcome to the about page.</p>
</div>
);
}
export default About;
// فایل pages/users/[id].js
import React from 'react';
import { useRouter } from 'next/router';
function User() {
const router = useRouter();
const { id } = router.query;
return (
<div>
<h1>User Profile: {id}</h1>
</div>
);
}
export default User;
توضیحات خط به خط کد
// فایل pages/about.js
این کد، صفحهای ساده به نام "About" ایجاد میکند که در مسیر
/about
قابل دسترسی است.import React from 'react';
کد وارد کردن ماژول React برای استفاده در کامپوننت است.
function About() { ... }
یک کامپوننت فانکشنال به نام About تعریف میکند.
return (<div> ... </div>);
محتوای صفحه "About" شامل یک عنوان و متن خوشآمدگویی را برمیگرداند.
export default About;
کامپوننت About را به عنوان خروجی پیشفرض صادر میکند.
// فایل pages/users/[id].js
این فایل یک مسیر دینامیک برای نمایش پروفایل کاربران ایجاد میکند.
import { useRouter } from 'next/router';
وارد کردن هوک
useRouter
برای استفاده از دادههای مسیر در کامپوننت است.const router = useRouter();
استفاده از هوک برای دریافت آیتمهای روتینگ مثل
id
موجود در آدرس.const { id } = router.query;
استخراج مقدار
id
از پارامترهای مسیر برای نمایش در صفحه.return (<div> ... </div>);
نمایش محتوای پروفایل کاربر با توجه به
id
در آدرس فعلی.export default User;
کامپوننت User را به عنوان خروجی پیشفرض صادر میکند.