Sobes.tech
Middle

Layihələrinizdə Vue komponentlərində CSS izolasyonunu necə təşkil etdiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Layihənin miqyasına və tələblərə görə müxtəlif yanaşmalar istifadə etdim:

  1. Scoped CSS: Vue-da ən yaygın metod. Stilər yalnız cari komponentin elementlərinə tətbiq olunur, CSS seçicilərinə və DOM elementlərinə avtomatik olaraq unikal atributlar əlavə etməklə.

    <template>
      <div class="container">
        Salam, Vue!
      </div>
    </template>
    
    <style scoped>
    /* Bu stil yalnız bu komponent daxilindəki container sinfi olan div-ə tətbiq olunacaq */
    .container {
      color: blue;
    }
    </style>
    
  2. CSS Modulları: Lokal CSS sinfləri yaratmağa imkan verir, onlar avtomatik olaraq unikal adlarla yaradılır. JavaScript-də obyekt kimi idxal edilir. Stilərin açıq şəkildə lokalizasiyasını təmin edir.

    <template>
      <div :class="$style.container">
        Salam, Modules!
      </div>
    </template>
    
    <style module>
    /* 'container' sinfi qurularkən unikal ad alacaq */
    .container {
      color: green;
    }
    </style>
    
  3. CSS-in-JS (Emotion və ya Styled Components kimi kitabxanalar vasitəsilə plaginlər): Stilər birbaşa JavaScript/TypeScript-də yazılır. Güclü izolasiya və dinamik stil təmin edir, lakin paket ölçüsünü artıra və mürəkkəbliyi əlavə edə bilər.

    // Şərti kitabxana ilə pseudokod nümunəsi
    import styled from 'vue-styled-components'; // İdxal nümunəsi
    
    const StyledDiv = styled.div` // Styled komponentin yaradılması
      color: purple;
    `;
    
    export default {
      components: {
        StyledDiv,
      },
      template: `<styled-div>Salam, CSS-in-JS!</styled-div>`,
    };
    
    
  4. Adlandırma Konvensiyaları (BEM): Blok-Element-Modifikator kimi sərt adlandırma konvensiyalarından istifadə. Çərçivə vasitəsilə texniki izolasiya təmin etmir, lakin oxunaqlığı və proqnozlaşdırıcılığı yaxşılaşdırır.

Metod seçimi aşağıdakı amillərə bağlı idi:

  • Komanda ölçüsü.
  • Komponentlərin mürəkkəbliyi.
  • Stilin təkrar istifadəsi ehtiyacı.
  • Layihədə qəbul edilən standartlar.

Ən çox scoped istifadə edirdim, onun sadəliyi və effektivliyi üçün. CSS Modulları daha mürəkkəb hallarda, daha sərt lokalizasiya və ya dinamik sinflər tələb olunduqda tətbiq olunurdu. CSS-in-JS nadir hallarda, əsasən artıq istifadə olunan və ya açıq ehtiyac olan layihələrdə. Adlandırma Konvensiyaları digər yanaşmaları hər zaman tamamlayırdı.