آموزش Next.js، مقدمهای بر Next.js، فریمورکی مبتنی بر React است که توسط شرکت Vercel توسعه یافته است. Next.js به توسعهدهندگان امکان میدهد تا برنامههای وب سریع، مقیاسپذیر و بهینهسازیشده را با استفاده از قابلیتهای پیشرفته مانند Server-Side Rendering (SSR) و Static Site Generation (SSG) ایجاد کنند. اولین نسخه Next.js در سال ۲۰۱۶ معرفی شد و از آن زمان به یکی از محبوبترین فریمورکهای React تبدیل شده است.
مزایا و ویژگیهای کلیدی Next.js
مقدمهای بر Next.js، دارای مزایای متعددی است که آن را از سایر فریمورکها متمایز میکند:
Server-Side Rendering (SSR)
یکی از ویژگیهای برجسته مقدمهای بر Next.js، پشتیبانی از Server-Side Rendering (SSR) است. با استفاده از SSR، صفحات وب در سرور رندر میشوند و سپس به مرورگر کاربر ارسال میشوند. این روش مزایای متعددی دارد:
بهبود SEO: موتورهای جستجو بهتر میتوانند محتوای صفحات را ایندکس کنند، زیرا محتوای HTML از قبل تولید شده است.
سرعت بارگذاری اولیه سریعتر: کاربران میتوانند محتوای صفحه را سریعتر ببینند، زیرا نیازی به بارگذاری و اجرای جاوااسکریپت برای رندرینگ محتوای اولیه نیست.
تجربه کاربری بهبود یافته: به ویژه برای کاربران با اتصال اینترنتی ضعیف، صفحات رندر شده در سرور میتوانند تجربه بهتری را ارائه دهند.
Static Site Generation (SSG)
مقدمهای بر Next.js همچنین از Static Site Generation (SSG) پشتیبانی میکند، که در آن صفحات وب به صورت استاتیک در زمان ساخت سایت تولید میشوند. مزایای این روش عبارتند از:
عملکرد بالا: صفحات استاتیک بسیار سریع بارگذاری میشوند، زیرا نیازی به رندرینگ در سرور در هر درخواست نیست.
امنیت بیشتر: صفحات استاتیک کمتر در معرض حملات قرار دارند زیرا شامل کدهای سروری نیستند.
مقیاسپذیری آسان: میتوان به راحتی صفحات استاتیک را از طریق CDNها توزیع کرد، که مقیاسپذیری بالایی را فراهم میکند.
پشتیبانی از API Routes
یکی دیگر از ویژگیهای کلیدی مقدمهای بر Next.js، پشتیبانی از API Routes است. این امکان را به توسعهدهندگان میدهد تا APIهای داخلی خود را به سادگی و بدون نیاز به تنظیمات پیچیده ایجاد کنند:
سادگی توسعه: با ایجاد فایلهایی در پوشه pages/api/ میتوانید به سرعت APIهای خود را پیادهسازی کنید.
یکپارچگی با Frontend: API Routes به طور کامل با بخش frontend پروژه شما یکپارچه میشوند، که توسعه و نگهداری را سادهتر میکند.
پشتیبانی از توابع سرور: میتوانید از امکانات پیشرفته سرور مانند احراز هویت، اتصال به پایگاه داده و مدیریت وضعیت استفاده کنید.
پیکربندی آسان
مقدمهای بر Next.js با ارائه تنظیمات پیشفرض مناسب، شروع به کار را برای توسعهدهندگان بسیار آسان میکند:
تنظیمات پیشفرض بهینه: بدون نیاز به پیکربندیهای پیچیده، میتوانید به سرعت پروژه خود را راهاندازی کنید.
قابلیت سفارشیسازی: اگر نیاز به تغییر تنظیمات دارید، میتوانید به راحتی فایل next.config.js را ویرایش کنید.
پشتیبانی از پلاگینها: Next.js از پلاگینهای متنوعی پشتیبانی میکند که میتوانید به راحتی آنها را به پروژه خود اضافه کنید.
بهینهسازی خودکار
یکی از ویژگیهای پیشرفته مقدمهای بر Next.js، بهینهسازی خودکار است که شامل بهینهسازی تصاویر، کد و بارگذاری منابع میشود:
بهینهسازی تصاویر: Next.js به طور خودکار تصاویر را به فرمتهای بهینه تبدیل میکند و از تکنیکهای Lazy Loading استفاده میکند.
کاهش حجم کد: با استفاده از تکنیکهایی مانند Tree Shaking و Code Splitting، حجم کد نهایی کاهش مییابد و سرعت بارگذاری افزایش مییابد.
بارگذاری منابع بهینه: منابع مانند فونتها و اسکریپتها به صورت بهینه بارگذاری میشوند تا عملکرد کلی وبسایت بهبود یابد.
مقایسه با سایر فریمورکها مانند Create React App و Gatsby
در مقدمهای بر Next.js، مقایسه با Create React App و Gatsby نشان میدهد که Next.js ترکیبی از بهترین ویژگیهای این فریمورکها را ارائه میدهد:
Create React App: بیشتر برای برنامههای تکصفحهای (SPA) مناسب است و از SSR پشتیبانی نمیکند. در حالی که مقدمهای بر Next.js با اضافه کردن SSR و SSG، انعطافپذیری بیشتری را برای توسعهدهندگان فراهم میکند.
Gatsby: تمرکز بیشتری بر روی سایتهای استاتیک دارد و از پیکربندیهای پیچیدهتری برخوردار است. مقدمهای بر Next.js با ارائه قابلیتهای SSR و SSG، میتواند به راحتی برای پروژههای متنوعتر مورد استفاده قرار گیرد.
Next.js: با ارائه هر دو قابلیت SSR و SSG، و همچنین ویژگیهای اضافی مانند API Routes و بهینهسازی خودکار، گزینهای جامعتر و قدرتمندتر برای توسعه وب است.
نصب و تنظیم محیط توسعه
پیشنیازها (نصب Node.js و npm/yarn)
برای شروع با مقدمهای بر Next.js، ابتدا باید Node.js و npm یا yarn را نصب کنید. Node.js محیط اجرای جاوااسکریپت در سرور است و npm یا yarn مدیر بستهها را فراهم میکنند. در این بخش، به طور جامعتر به نصب و تنظیم این پیشنیازها میپردازیم.
نصب Node.js
برای نصب Node.js، به وبسایت رسمی آن به آدرس nodejs.org مراجعه کنید. دو نسخه اصلی Node.js در دسترس هستند:
نسخه LTS (Long Term Support): این نسخه پایدارتر است و برای پروژههای تولیدی توصیه میشود.
نسخه Current: شامل آخرین ویژگیها و بهروزرسانیها است، اما ممکن است کمتر پایدار باشد.
مراحل نصب Node.js:
دانلود نسخه مناسب: بسته به سیستمعامل خود (ویندوز، مک یا لینوکس)، نسخه مناسب را انتخاب و دانلود کنید.
نصب Node.js: فایل دانلود شده را اجرا کرده و مراحل نصب را دنبال کنید. در طول نصب، مطمئن شوید که گزینه اضافه کردن Node.js به متغیرهای محیطی سیستم انتخاب شده باشد.
تأیید نصب: پس از نصب، ترمینال یا Command Prompt را باز کرده و دستورات زیر را اجرا کنید تا نسخههای نصبشده را بررسی کنید:
node -v npm -v
خروجی باید نسخههای نصبشده Node.js و npm را نمایش دهد. به عنوان مثال:
v18.16.0 9.5.0
نصب Yarn (اختیاری)
اگر ترجیح میدهید از yarn به جای npm استفاده کنید، میتوانید آن را به صورت زیر نصب کنید:
نصب Yarn: در ترمینال دستور زیر را اجرا کنید:
npm install --global yarn
تأیید نصب: با اجرای دستور زیر نسخه yarn را بررسی کنید:
yarn -v
ایجاد یک پروژه جدید با استفاده از Create Next App
برای ایجاد یک پروژه جدید در مقدمهای بر Next.js، میتوانید از ابزار Create Next App استفاده کنید. این ابزار به شما کمک میکند تا به سرعت یک پروژه Next.js را با تنظیمات پیشفرض مناسب راهاندازی کنید.
مراحل ایجاد پروژه:
باز کردن ترمینال: ترمینال یا Command Prompt را باز کنید.
اجرای دستور ایجاد پروژه:
npx create-next-app@latest my-next-app
در اینجا my-next-app نام پروژه شماست. میتوانید آن را به دلخواه تغییر دهید.
ورود به پوشه پروژه:
cd my-next-app
راهاندازی سرور توسعه:
npm run dev
پس از اجرای این دستور، سرور توسعه بر روی آدرس http://localhost:3000 در دسترس خواهد بود. با باز کردن این آدرس در مرورگر، صفحه خوشآمدگویی Next.js را مشاهده خواهید کرد.
بررسی ساختار پوشههای پروژه
در مقدمهای بر Next.js، ساختار پوشه پروژه به صورت زیر است:
pages/: شامل صفحات مختلف برنامه است. هر فایل جاوااسکریپت یا تایپاسکریپتی در این پوشه به یک مسیر (route) در وبسایت شما تبدیل میشود. به عنوان مثال، فایل pages/index.js صفحه اصلی وبسایت را نمایش میدهد.
public/: برای فایلهای عمومی مانند تصاویر، فونتها و سایر منابع استاتیک استفاده میشود. فایلهای این پوشه مستقیماً از ریشه وبسایت قابل دسترسی هستند.
styles/: برای فایلهای CSS و استایلها به کار میرود. شما میتوانید فایلهای CSS خود را در این پوشه قرار دهید و از آنها در کامپوننتهای خود استفاده کنید.
next.config.js: فایل پیکربندی اصلی Next.js است که در آن میتوانید تنظیمات مختلف فریمورک را تعریف کنید. این فایل به شما امکان میدهد تا رفتار پیشفرض Next.js را تغییر دهید و ویژگیهای اضافی را اضافه کنید.
.gitignore: فایل تنظیمات گیت که مشخص میکند کدام فایلها و پوشهها نباید در مخزن گیت ذخیره شوند.
package.json: شامل اطلاعات پروژه و وابستگیهای آن است. در این فایل میتوانید اسکریپتهای npm، وابستگیها و دیگر تنظیمات پروژه را مدیریت کنید.
README.md: فایل مستندات اولیه پروژه که معمولاً شامل توضیحات کلی درباره پروژه است.
تصویر ساختار پوشه پروژه:
my-next-app/ ├── node_modules/ ├── pages/ │ ├── api/ │ │ └── hello.js │ ├── index.js │ └── _app.js ├── public/ │ ├── favicon.ico │ └── vercel.svg ├── styles/ │ ├── globals.css │ └── Home.module.css ├── .gitignore ├── package.json ├── README.md └── next.config.js
تنظیمات اولیه (پیکربندی فایلهای اصلی مانند next.config.js)
فایل next.config.js در مقدمهای بر Next.js برای پیکربندی تنظیمات مختلف استفاده میشود. این فایل به شما اجازه میدهد تا رفتار پیشفرض Next.js را تغییر دهید و ویژگیهای اضافی را به پروژه خود اضافه کنید.
نمونهای از تنظیمات اولیه:
module.exports = {
reactStrictMode: true,
images: {
domains: ['example.com'],
},
};
توضیحات تنظیمات:
reactStrictMode: با فعال کردن این گزینه، React در حالت Strict Mode اجرا میشود که به شناسایی مشکلات احتمالی در کامپوننتهای شما کمک میکند.
images.domains: این تنظیمات به Next.js اجازه میدهد تا تصاویر را از دامنههای مشخص شده بارگذاری کند. به عنوان مثال، اگر تصاویر شما از دامنه example.com بارگذاری میشوند، باید این دامنه را در تنظیمات مشخص کنید.
افزودن تنظیمات پیشرفتهتر: شما میتوانید تنظیمات پیشرفتهتری نیز به next.config.js اضافه کنید، مانند پیکربندیهای مربوط به Internationalization (i18n)، افزونهها و پشتیبانی از TypeScript.
مثال: پیکربندی Internationalization
module.exports = {
i18n: {
locales: ['en', 'fa'],
defaultLocale: 'en',
},
};
در این مثال، Next.js از دو زبان انگلیسی و فارسی پشتیبانی میکند و زبان پیشفرض انگلیسی است.
استفاده از پلاگینها: Next.js از پلاگینهای متنوعی پشتیبانی میکند که میتوانید با افزودن آنها به پروژه، قابلیتهای بیشتری را به آن اضافه کنید. به عنوان مثال، برای پشتیبانی از Sass، میتوانید پلاگین مربوطه را نصب و تنظیم کنید:
نصب پلاگین Sass:
npm install sass
استفاده از Sass در پروژه: میتوانید فایلهای .scss را در پوشه styles/ ایجاد کرده و از آنها در کامپوننتهای خود استفاده کنید.
مثال: استفاده از Sass
/* styles/Home.module.scss */
.container {
padding: 2rem;
background-color: #f0f0f0;
}
سپس در فایل کامپوننت:
import styles from '../styles/Home.module.scss';
export default function Home() {
return (
<div className={styles.container}>
<h1>سلام به Next.js!</h1>
</div>
);
}
با تنظیمات اولیه و سفارشیسازیهای مورد نیاز، میتوانید محیط توسعه خود را بهینهسازی کرده و پروژه خود را برای توسعههای بیشتر آماده کنید.
مفاهیم پایهای فریمورک
در مقدمهای بر Next.js، درک مفاهیم پایهای فریمورک اهمیت ویژهای دارد. این مفاهیم شامل روشهای مختلف رندرینگ صفحات وب میشوند که هر کدام دارای ویژگیها، مزایا و معایب خاص خود هستند. در این بخش، به تفصیل به سه روش اصلی رندرینگ در Next.js میپردازیم: Server-Side Rendering (SSR)، Static Site Generation (SSG) و Client-Side Rendering (CSR).
مفهوم Server-Side Rendering (SSR) و Static Site Generation (SSG)
در مقدمهای بر Next.js، SSR و SSG دو روش اصلی برای رندرینگ صفحات هستند که هر کدام برای کاربردهای خاصی مناسباند.
Server-Side Rendering (SSR)
Server-Side Rendering (SSR) به فرآیندی اشاره دارد که در آن صفحات وب در سرور به صورت پویا و در هر درخواست کاربر رندر میشوند. این بدان معناست که هر بار که کاربری درخواست یک صفحه را ارسال میکند، سرور آن صفحه را با دادههای بهروز پردازش و به صورت HTML به مرورگر ارسال میکند.
مزایا:
بهبود SEO: موتورهای جستجو قادر به ایندکس بهتر محتوای صفحات هستند زیرا محتوای HTML از قبل تولید شده و در پاسخ به درخواستها موجود است.
سرعت بارگذاری اولیه سریعتر: کاربران میتوانند محتوای صفحه را سریعتر ببینند زیرا نیاز به بارگذاری و اجرای جاوااسکریپت برای رندرینگ محتوای اولیه نیست.
پشتیبانی از محتوای پویا: برای صفحات که نیاز به دادههای بهروز و پویا دارند، مانند صفحات محصولات در فروشگاههای آنلاین یا داشبوردهای کاربری، SSR مناسب است.
معایب:
بار اضافی روی سرور: هر درخواست کاربر نیازمند پردازش و رندرینگ مجدد صفحه است که میتواند به بار سرور اضافه کند.
زمان پاسخدهی بیشتر در هر درخواست: اگر سرور بار زیادی داشته باشد، ممکن است زمان پاسخدهی افزایش یابد و تجربه کاربری تحت تاثیر قرار گیرد.
مثال استفاده از SSR در Next.js: در Next.js، با استفاده از تابع getServerSideProps میتوانید دادهها را در سرور بارگذاری کنید و سپس آنها را به کامپوننت صفحه ارسال کنید.
// pages/profile.js
export async function getServerSideProps(context) {
const res = await fetch('https://api.example.com/user', {
headers: {
Authorization: `Bearer ${context.req.cookies.token}`,
},
});
const user = await res.json();
return {
props: { user }, // این دادهها به عنوان props به کامپوننت صفحه ارسال میشوند
};
}
function Profile({ user }) {
return (
<div>
<h1>سلام، {user.name}!</h1>
<p>ایمیل شما: {user.email}</p>
</div>
);
}
export default Profile;
Static Site Generation (SSG)
Static Site Generation (SSG) به فرآیندی اشاره دارد که در آن صفحات وب به صورت استاتیک و در زمان ساخت سایت تولید میشوند. محتوای HTML صفحات از پیش ساخته شده و در سرور یا CDN قرار میگیرد، بنابراین هر بار که کاربری درخواست یک صفحه را ارسال میکند، سرور تنها نیاز به ارسال فایلهای استاتیک دارد.
مزایا:
عملکرد بالا: صفحات استاتیک بسیار سریع بارگذاری میشوند زیرا نیازی به رندرینگ در سرور در هر درخواست نیست.
امنیت بیشتر: صفحات استاتیک کمتر در معرض حملات قرار دارند زیرا شامل کدهای سروری نیستند.
مقیاسپذیری آسان: میتوان به راحتی صفحات استاتیک را از طریق CDNها توزیع کرد، که مقیاسپذیری بالایی را فراهم میکند.
هزینه کمتر: چون صفحات استاتیک نیازمند منابع سروری کمتری هستند، هزینه میزبانی کاهش مییابد.
معایب:
محدودیت در محتوای پویا: برای صفحات که نیاز به دادههای بهروز و پویا دارند، SSG مناسب نیست مگر اینکه از تکنیکهای خاصی مانند Incremental Static Regeneration (ISR) استفاده شود.
زمان ساخت طولانیتر برای سایتهای بزرگ: در سایتهای بزرگ با تعداد زیادی صفحه، زمان ساخت سایت میتواند افزایش یابد.
مثال استفاده از SSG در Next.js: در Next.js، با استفاده از تابع getStaticProps میتوانید دادهها را در زمان ساخت سایت بارگذاری کنید و سپس آنها را به کامپوننت صفحه ارسال کنید.
// pages/posts/[id].js
export async function getStaticProps({ params }) {
const res = await fetch(`https://api.example.com/posts/${params.id}`);
const post = await res.json();
return {
props: { post }, // این دادهها به عنوان props به کامپوننت صفحه ارسال میشوند
};
}
export async function getStaticPaths() {
const res = await fetch('https://api.example.com/posts');
const posts = await res.json();
const paths = posts.map((post) => ({
params: { id: post.id.toString() },
}));
return { paths, fallback: false };
}
function Post({ post }) {
return (
<div>
<h1>{post.title}</h1>
<p>{post.content}</p>
</div>
);
}
export default Post;
تفاوتهای بین SSR، SSG و Client-Side Rendering (CSR)
مقدمهای بر Next.js تفاوتهای بین این روشها را به صورت زیر توضیح میدهد:
Server-Side Rendering (SSR)
محل رندرینگ: سرور
زمان رندرینگ: در هر درخواست کاربر
مزایا: بهبود SEO، دادههای بهروز
معایب: بار اضافی روی سرور، زمان پاسخدهی بیشتر
Static Site Generation (SSG)
محل رندرینگ: زمان ساخت سایت
زمان رندرینگ: قبل از ارسال به کاربر
مزایا: عملکرد بالا، امنیت بیشتر، مقیاسپذیری آسان
معایب: مناسب نبودن برای محتوای بسیار پویا، زمان ساخت طولانیتر برای سایتهای بزرگ
Client-Side Rendering (CSR)
Client-Side Rendering (CSR) به فرآیندی اشاره دارد که در آن تمام رندرینگ صفحات وب در مرورگر کاربر انجام میشود. محتوای HTML اولیه معمولاً یک صفحه خالی یا حداقلی است و جاوااسکریپت در مرورگر برای رندرینگ محتوای کامل صفحه استفاده میشود.
مزایا:
تعامل سریعتر پس از بارگذاری اولیه: پس از بارگذاری اولیه، تغییرات و تعاملات کاربر بدون نیاز به بارگذاری مجدد صفحه انجام میشود.
کاهش بار سرور: زیرا رندرینگ در مرورگر انجام میشود و سرور نیازی به پردازش رندرینگ ندارد.
انعطافپذیری در توسعه: به ویژه برای برنامههای تکصفحهای (SPA) که نیاز به تعاملات پیچیده دارند.
معایب:
بهبود کمتر SEO: موتورهای جستجو ممکن است به سختی بتوانند محتوای صفحات را ایندکس کنند زیرا محتوای اصلی از طریق جاوااسکریپت رندر میشود.
بار اولیه بیشتر: نیاز به بارگذاری جاوااسکریپت بیشتر برای رندرینگ محتوا.
وابستگی به جاوااسکریپت: اگر جاوااسکریپت در مرورگر کاربر غیرفعال باشد، محتوای صفحه نمایش داده نمیشود.
مثال استفاده از CSR در Next.js: در Next.js، به طور پیشفرض صفحات به صورت CSR رندر میشوند مگر اینکه از SSR یا SSG استفاده کنید.
// pages/dashboard.js
import { useEffect, useState } from 'react';
function Dashboard() {
const [data, setData] = useState(null);
useEffect(() => {
fetch('/api/dashboard-data')
.then((res) => res.json())
.then((data) => setData(data));
}, []);
if (!data) return <div>Loading...</div>;
return (
<div>
<h1>داشبورد شما</h1>
<p>تعداد بازدیدکنندگان: {data.visitors}</p>
</div>
);
}
export default Dashboard;
انتخاب روش مناسب رندرینگ
انتخاب بین SSR، SSG و CSR بستگی به نیازهای پروژه شما دارد. در مقدمهای بر Next.js، امکان ترکیب این روشها به صورت انعطافپذیر فراهم شده است تا بتوانید بهترین روش را بر اساس نیازهای خاص پروژه خود انتخاب کنید.
مثال ترکیب SSR و SSG: با استفاده از قابلیتهای Next.js، میتوانید برخی صفحات را با استفاده از SSG و برخی دیگر را با استفاده از SSR رندر کنید. به عنوان مثال، صفحات استاتیک مانند صفحه اصلی و صفحات محتوا میتوانند با استفاده از SSG رندر شوند، در حالی که صفحات داشبورد کاربر یا صفحات دارای دادههای پویا میتوانند با استفاده از SSR رندر شوند.
// pages/index.js - SSG
export async function getStaticProps() {
const res = await fetch('https://api.example.com/static-data');
const data = await res.json();
return {
props: { data },
};
}
function HomePage({ data }) {
return <div>{data.title}</div>;
}
export default HomePage;
// pages/dashboard.js - SSR
export async function getServerSideProps(context) {
const res = await fetch('https://api.example.com/user-data', {
headers: {
Authorization: `Bearer ${context.req.cookies.token}`,
},
});
const data = await res.json();
return {
props: { data },
};
}
function Dashboard({ data }) {
return <div>Welcome, {data.username}</div>;
}
export default Dashboard;
در مقدمهای بر Next.js، آشنایی با مفاهیم پایهای فریمورک مانند SSR، SSG و CSR به شما کمک میکند تا بهترین روش رندرینگ را بر اساس نیازهای پروژه خود انتخاب کنید. هر کدام از این روشها دارای مزایا و معایب خاص خود هستند و در ترکیب با یکدیگر میتوانند تجربه کاربری بهتری را فراهم کنند. Next.js با ارائه امکانات گسترده برای هر سه روش رندرینگ، انعطافپذیری بالایی را برای توسعهدهندگان فراهم میکند تا بتوانند برنامههای وب سریع، مقیاسپذیر و بهینهسازیشده را ایجاد کنند.
نتیجهگیری
در مقدمهای بر Next.js، ما با اصول اساسی و ویژگیهای کلیدی این فریمورک قدرتمند آشنا شدیم. Next.js با ارائه قابلیتهایی مانند Server-Side Rendering (SSR)، Static Site Generation (SSG) و API Routes، امکان ساخت برنامههای وب سریع، مقیاسپذیر و بهینه را برای توسعهدهندگان فراهم میکند. این فریمورک با ترکیب بهترین ویژگیهای Create React App و Gatsby، انعطافپذیری بیشتری را به کاربران ارائه میدهد و انتخابی عالی برای پروژههای مختلف از سایتهای استاتیک تا برنامههای پیچیدهی تکصفحهای (SPA) محسوب میشود.
همچنین، نصب و تنظیم محیط توسعه در مقدمهای بر Next.js به سادگی انجام میشود و با ابزارهای پیشرفتهای مانند Create Next App، توسعهدهندگان میتوانند به سرعت پروژههای خود را راهاندازی کنند. بررسی ساختار پوشههای پروژه و پیکربندیهای اولیه، درک بهتری از نحوه کارکرد Next.js به شما میدهد و امکان سفارشیسازی بیشتر را فراهم میآورد.
در بخش مفاهیم پایهای فریمورک، تفاوتها و کاربردهای مختلف SSR، SSG و CSR به تفصیل بررسی شد. این تفاوتها به شما کمک میکنند تا بهترین روش رندرینگ را بر اساس نیازهای خاص پروژه خود انتخاب کنید و از مزایای هر کدام بهرهمند شوید. همچنین، معرفی Incremental Static Regeneration (ISR) نشان داد که چگونه میتوان از ترکیب SSR و SSG برای بهبود عملکرد و تجربه کاربری استفاده کرد.
در نهایت، مقدمهای بر Next.js نشان داد که این فریمورک نه تنها امکانات گستردهای برای توسعهدهندگان فراهم میکند، بلکه با پشتیبانی از بهینهسازی خودکار و قابلیتهای پیشرفته، مسیر توسعه وب را سادهتر و کارآمدتر میسازد.
