Sobes.tech
Middle

Hoe heb je de CSS-isolatie georganiseerd in Vue-componenten in je projecten?

sobes.tech AI

Antwoord van AI

CSS in Vue-componenten kan op verschillende manieren worden geïsoleerd:

  1. Scoped CSS: Door het gebruik van het attribuut scoped in de <style>-tag van de component.

    <style scoped>
    .mijn-component {
    /* Stijlen worden alleen toegepast op elementen in deze component */
    color: blue;
    }
    </style>
    

    Vue voegt unieke attributen toe aan elementen en bijbehorende CSS-regels, waardoor isolatie wordt gegarandeerd.

  2. CSS Modules: Door het gebruik van het attribuut module in de <style>-tag.

    <style module>
    .mijnKlasse {
    color: green;
    }
    </style>
    
    <template>
    <div :class="$style.mijnKlasse">
    Hallo
    </div>
    </template>
    

    Dit creëert een lokale hash-klasse, toegankelijk via het $style-object in de template en script, waardoor naamconflicten worden voorkomen.

  3. CSS-in-JS bibliotheken (bijvoorbeeld Styled Components, Emotion): Integratie van externe bibliotheken voor het schrijven van stijlen direct in JavaScript.

    import styled from 'vue-styled-components';
    
    const MijnComponent = styled.div`
    color: purple;
    `;
    
    export default {
    components: { MijnComponent }
    // ...
    }
    

    Deze bibliotheken genereren unieke klassen en injecteren stijlen in de head van het document, waardoor isolatie wordt gegarandeerd.

De keuze van de methode hangt af van de projectvereisten en de voorkeuren van het team. Scoped CSS is het eenvoudigst voor kleine projecten, CSS Modules zijn handig voor grotere codebases die expliciet beheer van stijlen vereisen, en CSS-in-JS biedt volledige integratie van stijlen en logica in JavaScript.