Next.js چیست؟

Next.js یک فریم ورک برای react می باشد! این جمله ممکنه است عجبیب به نظر بیاید؟ 
_ چون که react خودش یک کتابخانه است پس چطور ممکنه که کتابخانه Next.js متعلق به کتابخانه ای دیگر باشد!؟

"می توانید برای اطلاعات بیشتر مقاله react چیست را مشاهده نمایید"

Next.js به زبان ساده میشه

یک فریم ورکی که از react استفاده می کند و تمام برنامه ها چه سمت سرور چه سمت کلاینت رو برای ما میتونه بسازه.
Next.js باعث بیشتر شدن قابلیت های react میشه در یک جمله ساده باعث ارتقای react میشه چیزی که اهمیت داره این هست که در Next.js ما هنوزم کد react می نویسیم Next.js  به ما کمک میکند که از قابلیت های فوق العاده قویش استفاده کنیم و برای هر چیز کوچیکی در برنامه لازم نباشد که از کتاب خانه های خارجی استفاده بکنیم.
next.js رو ما به عنوان «فریمورک متا» نیز میشناسیم به این دلیل که در ساختش از یک یا چندین فریم ورک استفاده شده.

مزایا Next.js چیست؟

یک وب سایت خبری یا فروشگاهی یا یک سایت شرکتی رو در نظر بگیرید که سرعت بالایی نداره و انتظاراتی که ما داریم رو برآورده نمیکنه این سایت نمیتونه سایت مورد پسند ما باشد ولی این مشکل با Next.js به راحتی قابل حل است چرا که مهم ترین مزیت Next.js سرعت زیاد و عملکرد عالی اون می باشد.

Next.js به ما این قدرت رو میده که سایت های ایستا خیلی جذاب و سریع بسازیم علاوه بر اون ما میتونیم برنامه های کابردی وب رو با استفاده از React پیاده سازی کنیم. تمام این ویژگی ها یک امکان ویژه به ما میده و اون هم این است که به ما اجازه میده تا بتونیم با استفاده از Next.js برنامه های ترکیبی بسازیم که هم صفحه های رندر شده توسط سرور و هم صفحه های تولید شده به صورت ایستا رو در برمیگیره

معایب استفاده از Next.js

مزایا Next.js خیلی بیشتر از معایبش هست با این حال:

توسعه و مدیریت: برای ایجاد تغییرات مورد نظرمون، به یک فرد متخصص با دانش مربوط نیاز داریم. 

هزینه: چون که Next.js صفحات داخلی زیادی رو render نمیکنه ما باید بخش Front End رو روش کار کنیم و ایجادش کنیم و این بخش هر از چندگاهی به تغییرات ریز و درشت احتیاج داره خب این یعنی اینکه یه خبر خوب در انتظار ما هست اونم اینکه ما باید هر وقت به تغییرات احتیاج داشتیم باید به یک توسعه دهنده پول پرداخت کنیم.

پلاگین کم: ما نمیتونیم خیلی از پلاگین های زیاد و مختلفی استفادده کنیم .

محدودیت در زبان سمت سرور: فریم ورک Next.js تکنولوژی سمت سرورش Node هست و این تغییر کردنی نیست. بر فرض مثال ما اگه بخواییم از زبان PHP استفاده کنیم امکان پذیر نیست. حتی ما این امکان رو نداریم بخواهیم به جای Node از یک تکنولوژی مشابهی مثل Deno استفاده کنیم.

ویژگی های برتر Next.js

Server-side Rendering (صفحه سازی در سمت سرور)

Server-side Rendering یعنی اینکه رندر کردن صفحات یا همون ساخت و نمایش آن ها در سمت سرور اتفاق می افته در react داده ها را از سرور گرفته و در سمت کلاینت (همون مرورگر کاربر) از اون داده ها استفاده میکنه برای ساخت و نمایش صفحه یا همون render کردن ولی server-side rendering یعنی صفحات از قبل در سمت سرور ساخته شده و حالا وقتی کاربر درخواست میده به صورت آماده به سمت کاربر ارسال می شوند این یعنی اینکه کاربر نیازی به انجام پردازش نداره.

File-based Routing (ناوبری فایل محور)

داخل کتابخانه react به صورت پیش فرض هیچ router ای وجود نداره که بخواد مسیر حرکت کاربر و تغییر URL مرورگر رو کنترل کنه و تحت نظر بگیره پس ما از پکیج هایی مثل react-router استفاده می کنیم. کار این مدل پکیج ها این هست که با تغییر URL در مرورگر کاربر، جلو گیری میکنه از رفتار پیش فرض مرورگر یا همون ارسال درخواست HTTP و بعد میاد محتوای متفاوتی تو همون صفحه رو نمایش میده میشه گفت به شکل زیرکانه ای کاربر رو گول می زنیم تا فکر کنه برنامه ما صفحه های مختلفی رو داره.

Full stack Capabilities (توانایی فول استک)

کاری که Next.js برای ما انجام میکنه کیاد خیلی ساده کد های react رو با کد سمت سرور ترکیب میکنه.
اگه بیایم از Next.js استفاده کنیم، یک API در سمت سرو میسازیم ر برای کار با برنامه React که خیلی هم کارمون آسون تر میشه. درنتیجه فرآیند هایی که به سرور و API نیاز دارند خیلی راحت در دسترس قرار میگیرند. مثل فرآیند احراز هویت کاربران، ، ذخیره سازی داده دریافت داده،و خیلی چیزهایی مثل تمام اینها همگی خیلی راحتی انجام می شوند

مواردی که میتونیم با NEXT.JS بسازیم:

  • MVP
  • وب سایت های Jam stack
  • پورتال های وب
  • Single web pages
  • وب سایت های استاتیک
  • محصول های SaaS
  • وب سایت های تجارت الکترونیک و عمده فروشی
  • داشبوردها
  • برنامه های کاربردی تحت وب
  • رابط های کاربری تعاملی

امیدواریم از مطالعه ی این مقله لذت برده باشید.