Sobes.tech
Middle

Чӣ гуна шумо дар лоиҳаҳои худ изолятсияи CSS-ро дар компонентҳои Vue ташкил додед?

sobes.tech AI

Ҷавоб аз AI

Ман ба чандин усул истифода кардам, вобаста ба андозаи лоиҳа ва талабот:

  1. Scoped CSS: Самтарин усул дар Vue. Стилҳо танҳо ба унсурҳои компонент ҳангоми истифода бурдан, бо илова кардани худкор атрибутҳои беназири CSS ва DOM истифода мешаванд.

    <template>
      <div class="container">
        Салом, Vue!
      </div>
    </template>
    
    <style scoped>
    /* Ин стиль танҳо ба div бо класс container дар дохили ин компонент татбиқ мешавад */
    .container {
      color: blue;
    }
    </style>
    
  2. CSS Modules: Имкон медиҳанд, ки классҳои локалӣ эҷод карда шаванд, ки бо номҳои беназири худ автоматӣ тавлид мешаванд. Ба сифати объект дар JavaScript ворид карда мешаванд.

    <template>
      <div :class="$style.container">
        Салом, Modules!
      </div>
    </template>
    
    <style module>
    /* Класс 'container' дар вақти ҷамъоварӣ номи беназир хоҳад дошт */
    .container {
      color: green;
    }
    </style>
    
  3. CSS-in-JS (бо китобхонаҳое мисли Emotion ё Styled Components тавассути плагинҳо): Стилҳо дар мустақим JavaScript/TypeScript навишта мешаванд. Инчунин, онҳо изолятсия ва стилҳои динамикӣ медиҳанд, аммо метавонанд андозаи бандлро зиёд кунанд ва мураккабиятро илова кунанд.

    // Намуна дар псевдокод бо китобхонаи гипотетикӣ
    import styled from 'vue-styled-components'; // Импорт
    
    const StyledDiv = styled.div` // Эҷоди компоненти styled
      color: purple;
    `;
    
    export default {
      components: {
        StyledDiv,
      },
      template: `<styled-div>Салом, CSS-in-JS!</styled-div>`,
    };
    
    
  4. Naming Conventions (BEM): Истифодаи қоидаҳои қатъии номгузории классҳо, мисли Block-Element-Modifier. Ин технологияҳо наметавонанд изолятсияи техникӣ таъмин кунанд, аммо хондан ва пешгӯӣро беҳтар мекунанд.

Интихоби усул вобаста аст аз:

  • Андозаи гурӯҳ.
  • Суръати компонентҳо.
  • Ниёз ба такрори истифодаи стилҳо.
  • Стандартҳои қабулшуда дар лоиҳа.

Бештар истифода мекардам scoped барои аксарияти компонентҳо бо сабаби соддагӣ ва самаранокии он. CSS Modules барои ҳолатҳои мураккабтар, ки ниёз ба локализатсия ё классҳои динамикӣ доранд. CSS-in-JS камтар, асосан дар лоиҳаҳое, ки аллакай истифода мешуд ё ниёз ба он буд. Naming Conventions ҳамеша бо дигар усулҳо ҳамроҳ карда мешуданд.