הדגל `!global` ב-SASS
מאמר זה מסביר את הדגל !global
ב-SASS.
נסביר את המנגנון המפורט, דוגמאות שימוש והזהרות של הדגל !global
.
YouTube Video
הדגל !global
ב-SASS
ב-SASS, הדגל !global
מאפשר לשלוט בטווח של משתנים. הבנה נכונה ושימוש מושכל בדגל זה יסייעו למנוע התנהגות לא צפויה ולשפר את התחזוקה של הקוד.
מהו הדגל !global
?
בדרך כלל, למשתנים ב-SASS יש טווח (scope). כברירת מחדל, משתנים תקפים רק בטווח שבו הם מוגדרים. כלומר, אם משתנה מוגדר בתוך פונקציה או מיקסין, לא ניתן לגשת אליו מחוץ לטווח זה.
עם זאת, בשימוש בדגל !global
, ניתן להגדיר משתנה ישירות בטווח הגלובלי. כך ניתן לשתף משתנים בין טווחים שונים.
ללא הדגל !global
1$color: red; // Global Variable
2
3@mixin change-color() {
4 $color: blue; // Local variable (does not overwrite the global variable)
5}
6
7.change {
8 @include change-color();
9 color: $color; // red
10}
- בקוד זה,
$color
מוגדר בטווח הגלובלי ולכן מאפיין הצבע של.change
נשארred
.
פלט CSS
1.change {
2 color: red;
3}
עם הדגל !global
נוסיף את הדגל !global
לאותה דוגמה.
1$color: red; // Global Variable
2
3@mixin change-color() {
4 $color: blue !global; // Overwrite the global variable
5}
6
7.change {
8 @include change-color();
9 color: $color; // blue
10}
- במקרה זה, מאחר ומצוין הדגל
!global
, ערך$color
מתעדכן בטווח הגלובלי. כתוצאה מכך, מאפיין הצבע של.change
יהיהblue
.
פלט CSS
1.change {
2 color: blue;
3}
אזהרות לשימוש
-
זיהום טווח גלובלי שימוש מופרז בדגל
!global
עלול לגרום להתנגשויות בלתי צפויות ולזיהום הטווח הגלובלי. זאת חשיבות מיוחדת בפרויקטים גדולים, ויש להימנע משימוש מופרז בדגל זה. -
דריסת ערכים לא מכוונת כאשר משתמשים בדגל
!global
, ייתכן שמשתנים עם אותו שם יידרסו בטעות במקומות אחרים. לכן, יש לתת שמות ברורים ועקביים למשתנים.
דוגמה מעשית
הדוגמה הבאה מציגה שימוש נכון בדגל !global
.
1$primary-color: #3498db;
2$secondary-color: #2ecc71;
3
4@mixin set-theme($primary, $secondary) {
5 $primary-color: $primary !global;
6 $secondary-color: $secondary !global;
7}
8
9.light-theme {
10 @include set-theme(#ffffff, #dddddd);
11}
12
13.dark-theme {
14 @include set-theme(#333333, #666666);
15}
16
17body {
18 background-color: $primary-color;
19 color: $secondary-color;
20}
- בקוד זה, ניתן להשתמש ב-mixin שנקרא
set-theme
כדי להחליף ערכות נושא בצורה דינמית. מכיוון שהמשתנים הגלובליים מתעדכנים עבור כל ערכת נושא, ניתן לנהל מספר ערכות נושא בגמישות.
פלט CSS
1body {
2 background-color: #333333;
3 color: #666666;
4}
שגיאות נפוצות ודרכי התמודדות
שוכחים להוסיף את הדגל
אם שוכחים להוסיף את !global
, יתכן שהמשתנים לא יתעדכנו בטווח המתאים. ודאו להוסיף את הדגל במפורש כשנדרש.
1@mixin update-color() {
2 $color: green; // Local variable (does not overwrite the global variable)
3}
4
5@mixin update-color-global() {
6 $color: green !global; // Overwrite the global variable
7}
תלות מופרזת בטווח הגלובלי
תלות רבה מדי בדגל !global
יכולה להקשות על ניפוי שגיאות ותחזוקת הקוד. יש להמעיט בשימוש בו ככל האפשר.
סיכום
הדגל !global
ב-SASS שימושי מאוד במצבים מסוימים, אך יש להשתמש בו בזהירות. על ידי הבנת תחום המשתנים וניהול נכון של הטווח הגלובלי, תוכלו ליצור קוד SASS שקל לתחזק.
להלן נקודות חשובות שעליכם לזכור:.
-
משתנים תלויים בטווח שלהם כברירת מחדל.
-
הדגל
!global
מאפשר לעדכן משתנים בטווח הגלובלי. -
השתמשו בדגלים רק כאשר צריך, והימנעו מדריסה לא מכוונת של ערכים בכל הזדמנות אפשרית.
תוכלו לעקוב אחר המאמר שלמעלה באמצעות Visual Studio Code בערוץ היוטיוב שלנו. נא לבדוק גם את ערוץ היוטיוב.