`!global`-flaget i SASS

`!global`-flaget i SASS

Denne artikel forklarer !global-flaget i SASS.

Vi vil forklare den detaljerede mekanisme, brugseksempler og forholdsregler ved brug af !global-flaget.

YouTube Video

!global-flaget i SASS

I SASS bruges !global-flaget til at styre variablers rækkevidde. Ved korrekt at forstå og bruge dette flag kan du forhindre uventet adfærd i din kode og forbedre vedligeholdelsen.

Hvad er !global-flaget?

Normalt har SASS-variabler en rækkevidde. Som standard gælder variabler kun inden for det scope, hvor de er defineret. Med andre ord, hvis en variabel er defineret inden for en funktion eller mixin, kan den ikke tilgås udenfor dette scope.

Dog kan du ved brug af !global-flaget tildele variablen direkte til det globale scope. Dette gør det muligt at dele variabler på tværs af scopes.

Uden !global-flaget

 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 denne kode er $color defineret i det globale scope, så egenskaben color for .change forbliver rød.

Output CSS

1.change {
2    color: red;
3}

Med !global-flaget

Lad os tilføje !global-flaget til det samme eksempel.

 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 dette tilfælde, da !global-flaget bruges, opdateres værdien af $color i det globale scope. Som resultat bliver egenskaben color for .change til blå.

Output CSS

1.change {
2    color: blue;
3}

Forholdsregler ved brug

  • Forurening af globalt scope Overdreven brug af !global-flaget kan føre til uventede scope-konflikter og forurening af det globale scope. Dette er især vigtigt i store projekter, hvor overdreven brug af dette flag bør undgås.

  • Utilsigtede overskrivninger af værdier Når du bruger !global-flaget, kan variabler med samme navn utilsigtet blive overskrevet andre steder. Derfor er konsistent og tydelig navngivning af variabler nødvendig.

Praktisk eksempel

Følgende er et eksempel på korrekt brug af !global-flaget.

 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 denne kode kan set-theme-mixin bruges til dynamisk at skifte temaer. Da globale variabler opdateres for hvert tema, kan flere temaer håndteres fleksibelt.

Output CSS

1body {
2    background-color: #333333;
3    color: #666666;
4}

Almindelige fejl og modforanstaltninger

At glemme flaget

Hvis du glemmer at tilføje !global, bliver variabler måske ikke opdateret i det ønskede scope. Sørg for eksplicit at tilføje flaget, når det er nødvendigt.

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}

Overdreven afhængighed af det globale scope

At stole for meget på !global-flaget kan gøre fejlfinding og vedligeholdelse af koden vanskelig. Brugen bør begrænses mest muligt.

Sammendrag

!global-flaget i SASS er meget nyttigt i specifikke situationer, men det bør bruges med forsigtighed. Ved tydeligt at forstå variabel-scope og ved korrekt at håndtere globalt scope, kan du skabe meget vedligeholdelseseffektiv SASS-kode.

Følgende er nøglepunkter at huske på:.

  1. Variabler afhænger som standard af deres scope.

  2. !global-flaget gør det muligt at opdatere variabler i det globale scope.

  3. Begræns brugen af flag til et minimum og undgå utilsigtede overskrivninger, hvor det er muligt.

Du kan følge med i ovenstående artikel ved hjælp af Visual Studio Code på vores YouTube-kanal. Husk også at tjekke YouTube-kanalen.

YouTube Video