استفاده از Sass و مدیریت اسکریپت‌ها در Next.js – استایل‌نویسی مدرن و بارگذاری بهینه

Next.js به‌صورت داخلی از Sass پشتیبانی می‌کند و امکان استفاده از SCSS یا SASS را با CSS Modules فراهم می‌سازد. همچنین با کامپوننت Script می‌توان اسکریپت‌های خارجی را به‌صورت بهینه بارگذاری کرد، از جمله با استراتژی‌های مختلف و پشتیبانی آزمایشی از Web Worker با Partytown.

SassSCSSScript ComponentPartytown

~2 min read · Updated Oct 28, 2025

نصب و استفاده از Sass در Next.js


برای فعال‌سازی Sass، ابتدا پکیج زیر را نصب کنید:

npm install --save-dev sass

Next.js از دو نوع سینتکس پشتیبانی می‌کند:

  • .scss: سینتکس مشابه CSS (پیشنهادی)
  • .sass: سینتکس فاصله‌دار (Indented)

استفاده از CSS Modules با Sass


برای استایل‌دهی سطح کامپوننت، از فایل‌هایی با پسوند .module.scss یا .module.sass استفاده کنید.


پیکربندی sassOptions در next.config.js


sassOptions: {
  additionalData: `$var: red;`,
  implementation: 'sass-embedded',
}

استفاده از متغیرهای Sass در جاوااسکریپت


مثال:

// variables.module.scss
$primary-color: #64ff00;

:export {
  primaryColor: $primary-color;
}

// page.tsx
import variables from './variables.module.scss'

<h1 style={{ color: variables.primaryColor }}>Hello, Next.js!</h1>

بارگذاری اسکریپت‌ها با کامپوننت Script


برای بارگذاری اسکریپت در layout خاص:

import Script from 'next/script'

<Script src="https://example.com/script.js" />

برای بارگذاری در کل اپلیکیشن:

// app/layout.tsx
<Script src="https://example.com/script.js" />

استراتژی‌های بارگذاری اسکریپت


  • beforeInteractive: قبل از بارگذاری Next.js
  • afterInteractive: بعد از hydration (پیش‌فرض)
  • lazyOnload: در زمان بیکاری مرورگر
  • worker: بارگذاری در Web Worker (آزمایشی)

استفاده از Partytown برای بارگذاری در Web Worker


فعال‌سازی در next.config.js:

experimental: {
  nextScriptWorkers: true,
}

سپس نصب:

npm install @builder.io/partytown

و استفاده:

<Script src="https://example.com/script.js" strategy="worker" />

اسکریپت‌های Inline


مثال:

<Script id="show-banner">
  {`document.getElementById('banner').classList.remove('hidden')`}
</Script>

استفاده از event handlerها


در کامپوننت کلاینتی:

'use client'

<Script
  src="https://example.com/script.js"
  onLoad={() => console.log('Script loaded')}
/>

ارسال ویژگی‌های اضافی به تگ <script>


ویژگی‌هایی مانند nonce یا data-* به‌صورت خودکار منتقل می‌شوند:

<Script
  src="https://example.com/script.js"
  id="example-script"
  nonce="XUENAJFW"
  data-test="script"
/>

جمع‌بندی


با استفاده از Sass و کامپوننت Script در Next.js، می‌توانید استایل‌های مدرن و بارگذاری بهینه اسکریپت‌ها را در اپلیکیشن خود پیاده‌سازی کنید. این ابزارها به شما کنترل کامل بر عملکرد، امنیت، و تجربه کاربری می‌دهند.


Written & researched by Dr. Shahin Siami

Related Articles

مسیریابی پیشرفته و هوک‌های عملکرد در Next.js — راهنمای توسعه‌دهنده برای App Router

Next.js مجموعه‌ای غنی از هوک‌های کلاینت و ابزارهای کش و ناوبری را در اختیار توسعه‌دهندگان قرار می‌دهد. از خواندن پارامترهای مسیر تا گزارش Web Vitals و مدیریت کش، این مقاله مهم‌ترین ابزارهای App Router را با مثال‌های کاربردی معرفی می‌کند.

Continue

مدیریت احراز هویت و کش در Next.js — راهنمای توسعه‌دهنده برای امنیت و عملکرد پویا

Next.js با معرفی قابلیت‌های آزمایشی جدید، امکان کنترل دقیق‌تر دسترسی و کش داده‌ها را فراهم کرده است. تابع unauthorized برای مدیریت خطای 401 و هدایت کاربران به صفحه ورود، unstable_cache برای کش هوشمند عملیات سنگین، updateTag برای بازسازی آنی داده‌ها، و useLinkStatus برای نمایش وضعیت ناوبری استفاده می‌شوند. این مقاله نحوه استفاده از این ابزارها را با مثال‌های کاربردی و نکات مهم بررسی می‌کند.

Continue

redirect و refresh در Next.js — ریدایرکت‌های هوشمند و تازه‌سازی مسیر در Server Actions

تابع redirect در Next.js برای هدایت کاربر به مسیر جدید استفاده می‌شود و بسته به نوع استفاده، پاسخ HTTP با وضعیت 307 یا 303 ارسال می‌کند. این تابع در Server Components، Client Components، Route Handlers و Server Actions قابل استفاده است. تابع refresh نیز برای تازه‌سازی مسیر کلاینت از درون Server Action استفاده می‌شود. این مقاله نحوه استفاده از هر دو تابع را با مثال‌های کاربردی و نکات مهم توضیح می‌دهد.

Continue

Next.js با معرفی NextRequest و NextResponse، APIهای Request و Response مرورگر را گسترش داده و ابزارهای قدرتمندی برای مدیریت کوکی‌ها، هدرها، ریدایرکت‌ها، بازنویسی مسیرها و پاسخ‌های JSON فراهم کرده است. این مقاله نحوه استفاده از این ابزارها را با مثال‌های کاربردی و نکات امنیتی توضیح می‌دهد.

Next.js با معرفی NextRequest و NextResponse، APIهای Request و Response مرورگر را گسترش داده و ابزارهای قدرتمندی برای مدیریت کوکی‌ها، هدرها، ریدایرکت‌ها، بازنویسی مسیرها و پاسخ‌های JSON فراهم کرده است. این مقاله نحوه استفاده از این ابزارها را با مثال‌های کاربردی و نکات امنیتی توضیح می‌دهد.

Continue

headers، ImageResponse، notFound و permanentRedirect در Next.js — مدیریت درخواست‌ها، تولید تصویر، خطا و ریدایرکت

Next.js ابزارهای قدرتمندی برای مدیریت درخواست‌ها و پاسخ‌ها در کامپوننت‌های سروری فراهم کرده است. تابع headers برای خواندن هدرهای HTTP ورودی، ImageResponse برای تولید تصاویر داینامیک، notFound برای نمایش صفحه خطای 404، و permanentRedirect برای ریدایرکت دائمی کاربران استفاده می‌شوند. این مقاله نحوه استفاده از هر یک را با مثال‌های کاربردی توضیح می‌دهد.

Continue

راهنمای کامل استفاده از metadata و generateMetadata در Next.js

در نسخه‌های مدرن Next.js، مدیریت metadata صفحات بسیار قدرتمندتر و ساده‌تر شده است. metadata به‌صورت خودکار در تگ <head> صفحات تزریق می‌شود و نقش مهمی در SEO، اشتراک‌گذاری اجتماعی و تجربه کاربری دارد. این مقاله دو روش اصلی تعریف metadata را بررسی می‌کند: استفاده از آبجکت ثابت metadata و تابع داینامیک generateMetadata.

Continue