`!global`-flaggan i SASS
Den här artikeln förklarar flaggan !global
i SASS.
Vi kommer att förklara den detaljerade mekanismen, användningsexempel och försiktighetsåtgärder för flaggan !global
.
YouTube Video
!global
-flaggan i SASS
I SASS används !global
-flaggan för att manipulera variablers räckvidd. Genom att förstå denna flagga korrekt och använda den på rätt sätt kan du undvika oväntat beteende i din kod och förbättra underhållbarheten.
Vad är !global
-flaggan?
Normalt sett har SASS-variabler en räckvidd (scope). Som standard gäller variabler endast inom det omfång där de definieras. Med andra ord, om en variabel definieras inuti en funktion eller mixin kan den inte användas utanför det omfånget.
Men genom att använda !global
-flaggan kan du direkt tilldela variabeln till det globala omfånget. Detta gör att variabler kan delas mellan olika omfång.
Utan !global
-flaggan
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}
- I denna kod är
$color
definierad i globalt omfång, så egenskapencolor
för.change
förblirred
.
Utdatakod (CSS)
1.change {
2 color: red;
3}
Med !global
-flaggan
Låt oss lägga till !global
-flaggan i samma exempel.
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}
- I detta fall, eftersom
!global
-flaggan anges, uppdateras värdet av$color
i det globala omfånget. Som ett resultat blir egenskapencolor
för.change
blue
.
Utdatakod (CSS)
1.change {
2 color: blue;
3}
Försiktighetsåtgärder
-
Förorening av globalt omfång Överdriven användning av
!global
-flaggan kan leda till oväntade konfliktproblem och förorening av den globala räckvidden. Detta är särskilt viktigt i stora projekt, där överanvändning av denna flagga bör undvikas. -
Oavsiktliga värdeersättningar När du använder
!global
-flaggan kan variabler med samma namn oavsiktligt överskrivas någon annanstans. Därför är konsekvent och tydlig namngivning av variabler nödvändigt.
Praktiskt exempel
Följande är ett exempel på hur man använder !global
-flaggan korrekt.
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}
- I denna kod kan
set-theme
-mixinen användas för att dynamiskt byta teman. Eftersom globala variabler uppdateras för varje tema kan flera teman hanteras flexibelt.
Utdatakod (CSS)
1body {
2 background-color: #333333;
3 color: #666666;
4}
Vanliga misstag och motåtgärder
Att glömma flaggan
Om du glömmer att lägga till !global
kanske variabler inte uppdateras i det avsedda omfånget. Se till att lägga till flaggan uttryckligen när det behövs.
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}
Överdrivet beroende av det globala omfånget
Att förlita sig för mycket på !global
-flaggan kan göra felsökning och underhåll av koden svårt. Dess användning bör hållas till ett minimum.
Sammanfattning
!global
-flaggan i SASS är mycket användbar i specifika situationer, men den bör användas med försiktighet. Genom att tydligt förstå variablers omfång och hantera det globala omfånget korrekt kan du skapa SASS-kod som är lätt att underhålla.
Följande är viktiga punkter att tänka på:.
-
Variabler är beroende av sitt omfång som standard.
-
!global
-flaggan gör det möjligt att uppdatera variabler i det globala omfånget. -
Begränsa användningen av flaggor till ett minimum och undvik oavsiktliga överskrivningar så mycket som möjligt.
Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.