آموزش رایگان Vue.js

استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی

23م آذر 1404 محراب حسن زاده
استفاده از CSS Scoped و استایل‌دهی به کامپوننت‌ها در Vue.js | آموزش کاربردی

در Vue.js، کامپوننت‌ها بخش‌های مجزا و قابل استفاده مجددی از برنامه هستند که می‌توانند HTML، CSS و JavaScript خاص خود را داشته باشند. برای جلوگیری از تداخل استایل‌ها بین کامپوننت‌ها، Vue ویژگی‌ای به نام CSS Scoped ارائه می‌دهد. با استفاده از این ویژگی می‌توان استایل‌های CSS را به یک کامپوننت خاص محدود کرد. در این مقاله، به بررسی ویژگی CSS Scoped و روش‌های مختلف استایل‌دهی به کامپوننت‌ها در Vue.js می‌پردازیم.


مفهوم CSS Scoped در Vue.js

CSS Scoped به شما این امکان را می‌دهد که استایل‌های CSS را فقط به کامپوننت مربوطه محدود کنید. این ویژگی از اضافه شدن استایل‌های یک کامپوننت به سایر کامپوننت‌ها جلوگیری می‌کند و تضمین می‌کند که هر کامپوننت تنها با استایل‌های خود رندر شود.


نحوه استفاده از CSS Scoped

برای محدود کردن استایل‌های CSS به یک کامپوننت، کافی است که ویژگی scoped را به تگ < style > اضافه کنید. این کار باعث می‌شود که Vue به صورت خودکار یک شناسه یکتا به کلاس‌ها و استایل‌ها اضافه کند و آن‌ها را به کامپوننت محدود کند.

مثال استفاده از CSS Scoped در یک کامپوننت:




< template >
  < div class = " my-component " >
    < h1 > Hello from Scoped CSS < / h1 >
  < / div >
< / template >




export default {
  name : " MyComponent "
} ;




.my-component {
  color: blue;
}

h1 {
  font-size: 24px;
}


در این مثال:

  • استایل‌هایی که داخل تگ < style scoped > قرار گرفته‌اند، تنها به عناصر داخل این کامپوننت (یعنی MyComponent) اعمال می‌شوند.

  • استایل‌های my-component و h1 بر سایر کامپوننت‌ها تأثیری نخواهند گذاشت.


مزایای استفاده از CSS Scoped

  • جلوگیری از تداخل استایل‌ها: با محدود کردن استایل‌ها به یک کامپوننت خاص، نیازی نیست نگران تداخل استایل‌ها در پروژه باشید.

  • نگهداری و خوانایی بیشتر: هر کامپوننت استایل‌های خاص خود را دارد و پروژه‌ای ساختارمند و قابل نگهداری‌تر ایجاد می‌کند.

  • مقیاس‌پذیری: به راحتی می‌توانید کامپوننت‌ها را به سایر بخش‌های پروژه اضافه کنید بدون نگرانی از تداخل استایل‌ها.


محدودیت‌های CSS Scoped

در حالی که CSS Scoped ابزار قدرتمندی است، اما محدودیت‌هایی نیز دارد:

  • تأثیر روی کامپوننت‌های فرزند: استایل‌های Scoped به صورت پیش‌فرض به کامپوننت‌های فرزند اعمال نمی‌شوند. اگر نیاز دارید که استایل‌ها به فرزندان کامپوننت نیز اعمال شوند، باید از ترکیب CSS Scoped با انتخابگرهای CSS مانند > استفاده کنید.

  • عدم پشتیبانی از global: استایل‌های Scoped به صورت پیش‌فرض به کلاس‌ها یا عناصر عمومی اعمال نمی‌شوند. برای افزودن استایل‌های عمومی به کامپوننت، باید از استایل‌های global استفاده کنید.

مثال برای تأثیر روی کامپوننت‌های فرزند با انتخابگرهای CSS:




< template >
  < div class = " parent-component " >
    < div class = " child-component " > This is a child component < / div >
  < / div >
< / template >




.parent-component > .child-component {
  color: green;
}


در این مثال، استایل تنها به child-component در داخل parent-component اعمال می‌شود و بر سایر عناصر تأثیری ندارد.


استفاده از CSS Modules برای استایل‌دهی به کامپوننت‌ها

Vue.js همچنین از CSS Modules پشتیبانی می‌کند که روشی برای نوشتن کلاس‌های یکتا و محدود به کامپوننت است. CSS Modules با تولید کلاس‌های یکتا از تداخل استایل‌ها جلوگیری می‌کند.

مثال استفاده از CSS Modules در Vue:




< template >
  < div :class = " $style.myComponent " >
    Styled with CSS Modules
  < / div >
< / template >




.myComponent {
  color: red;
  font-weight: bold;
}


در اینجا:

  • $style.myComponent کلاسی یکتا تولید می‌کند که تنها به این کامپوننت اعمال می‌شود.

  • Vue.js به صورت خودکار نام کلاس را به شکلی یکتا تنظیم می‌کند تا از تداخل استایل‌ها جلوگیری شود.


استفاده از استایل‌های جهانی در کنار Scoped CSS

گاهی نیاز است که استایل‌هایی به صورت عمومی در کل پروژه اعمال شوند. برای این کار، می‌توانید بخشی از کد CSS را به عنوان استایل جهانی تعریف کنید.

مثال استفاده از استایل‌های جهانی:




/* استایل‌های Scoped */
.my-component {
  color: blue;
}




/* استایل‌های عمومی */
body {
  font-family: Arial, sans-serif;
  background-color: #f0f0f0;
}


در این مثال، استایل‌های عمومی بدون scoped تعریف شده‌اند و بر کل پروژه اثرگذار خواهند بود، در حالی که استایل‌های scoped تنها به کامپوننت محدود شده‌اند.


استفاده از متغیرهای CSS برای استایل‌دهی پویا

متغیرهای CSS می‌توانند برای تنظیم استایل‌های پویا در Vue.js استفاده شوند. این کار به شما اجازه می‌دهد تا رنگ‌ها، فونت‌ها و سایر ویژگی‌ها را به طور متمرکز کنترل کنید.

مثال استفاده از متغیرهای CSS در کامپوننت:




< template >
  < div class = " my-component " >
    < p > This text uses CSS variables < / p >
  < / div >
< / template >




:root {
  --main-color: #3498db;
  --font-size: 16px;
}

.my-component {
  color: var(--main-color);
  font-size: var(--font-size);
}


در اینجا، متغیرهای --main-color و --font-size برای استایل‌دهی به کامپوننت استفاده می‌شوند و می‌توانند به راحتی در سایر کامپوننت‌ها نیز استفاده شوند.


استفاده از Preprocessorها برای استایل‌دهی پیشرفته

در Vue.js می‌توانید از Preprocessorهایی مانند SCSS، SASS و LESS استفاده کنید تا استایل‌های پیشرفته‌تر و سازماندهی شده‌تری داشته باشید. این Preprocessorها امکانات بیشتری مانند متغیرها، توابع و تو در تویی (Nesting) را فراهم می‌کنند.

مثال استفاده از SCSS در Vue:




< template >
  < div class = " my-component " >
    < p > Styled with SCSS < / p >
  < / div >
< / template >




$main-color: #2ecc71;

.my-component {
  color: $main-color;

  p {
    font-size: 18px;
    font-weight: bold;
  }
}


در این مثال، متغیر $main-color تعریف شده و سپس در استایل‌دهی به کامپوننت استفاده شده است.


نتیجه‌گیری

با استفاده از CSS Scoped، CSS Modules و سایر تکنیک‌های استایل‌دهی مانند Preprocessorها و متغیرهای CSS، می‌توانید استایل‌های بهینه و سازمان‌یافته‌ای برای کامپوننت‌های Vue.js خود ایجاد کنید. این قابلیت‌ها باعث می‌شوند که کد شما مقیاس‌پذیرتر، خواناتر و بدون تداخل در سایر بخش‌ها باشد. با استفاده صحیح از این تکنیک‌ها، می‌توانید به پروژه‌های خود نظم و پایداری بیشتری بدهید.

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

راهنمای کامل جداول HTML: آموزش ساخت و بهینه‌سازی سئو
21م مرداد 1402

راهنمای کامل جداول HTML: آموزش ساخت و بهینه‌سازی سئو

مطالعه بیشتر
آموزش کامل Super Global ها در PHP (متغیرهای سراسری)
27م تیر 1405

آموزش کامل Super Global ها در PHP (متغیرهای سراسری)

مطالعه بیشتر
آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش
2م شهریور 1403

آموزش کامل کار با آرایه‌ها و اشیاء در جاوا اسکریپت: ایجاد، دستکاری و پیمایش

مطالعه بیشتر
آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد
24م آذر 1404

آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد

مطالعه بیشتر
آموزش جامع انواع داده‌ها در PHP (بخش اول: String, Integer, Float, Boolean)
24م خرداد 1405

آموزش جامع انواع داده‌ها در PHP (بخش اول: String, Integer, Float, Boolean)

مطالعه بیشتر
راهنمای جامع نصب و پیکربندی محیط توسعه محلی (XAMPP، WAMP و Laragon)
14م خرداد 1405

راهنمای جامع نصب و پیکربندی محیط توسعه محلی (XAMPP، WAMP و Laragon)

مطالعه بیشتر
آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)
16م تیر 1405

آموزش جامع پارامترها و مقادیر بازگشتی در PHP (بر اساس استانداردهای مدرن)

مطالعه بیشتر
آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی
4م آبان 1403

آموزش ساخت ماشین حساب با جاوا اسکریپت: راهنمای کامل با مثال‌های کاربردی

مطالعه بیشتر
آموزش HTML: اولین گام برای طراحی سایت و سئو حرفه‌ای
18م مرداد 1402

آموزش HTML: اولین گام برای طراحی سایت و سئو حرفه‌ای

مطالعه بیشتر
آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها
2م آبان 1403

آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها

مطالعه بیشتر
آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب
11م آبان 1403

آموزش استفاده از box-shadow و text-shadow در CSS: ایجاد سایه‌های زیبا و جذاب

مطالعه بیشتر
معرفی جاوا اسکریپت و نحوه استفاده از آن برای توسعه وب تعاملی: راهنمای جامع
27م شهریور 1402

معرفی جاوا اسکریپت و نحوه استفاده از آن برای توسعه وب تعاملی: راهنمای جامع

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد