Fermer

août 29, 2019

Comment redéfinir Unsplash à l'aide de composants stylés –


Écrire du CSS à l'épreuve du temps est difficile. Des noms de classe en conflit, des problèmes de spécificité, etc., apparaissent lorsque vous devez écrire et gérer des milliers de lignes de code CSS. Styled Components a été créé

Styled Components facilite l'écriture de vos CSS dans JS et vous assure qu'il n'y a pas de noms de classe en conflit ni de problèmes de spécificité comportant de nombreux autres avantages. L'écriture de CSS est un plaisir.

Dans ce didacticiel, nous allons explorer ce qu'est CSS dans JS, les avantages et inconvénients de styled-components et enfin, nous allons repenser Unsplash à l'aide de Styled Components. . Après avoir terminé ce didacticiel, vous devriez être en mesure de vous familiariser rapidement avec les composants stylisés.

Remarque: Styled Components a été spécialement conçu pour React. Vous devez donc utiliser React pour utiliser ce dernier. 19659005] Conditions préalables

Pour ce didacticiel, vous devez posséder des connaissances de base en React .

Tout au long de ce didacticiel, nous utiliserons le fil . . Si vous n'avez pas le fil déjà installé, installez-le à partir de ici .

Pour vous assurer que nous sommes sur la même page, il s'agit des versions utilisées dans ce tutoriel :

  • Noeud 12.6.0
  • npx 6.4.1
  • fil 1.17.3

Evolution du CSS

Avant la création de CSS-in-JS, le moyen le plus courant de styliser des applications Web était de: écrivez CSS dans un fichier séparé et associez-le au HTML.

Mais cela a posé problème dans les grandes équipes. Tout le monde a sa propre façon d'écrire CSS. Cela posait des problèmes de spécificité et poussait tout le monde à utiliser ! Important .

Vint ensuite Sass. Sass est une extension de CSS qui nous permet d’utiliser des éléments tels que des variables, des règles imbriquées, des importations en ligne, etc. Cela aide également à garder les choses organisées et nous permet de créer des feuilles de style plus rapidement.

Même si Sass peut être perçu comme une amélioration par rapport à CSS, il fait sans doute plus de mal que de bien sans la mise en place de certains systèmes.

BEM est arrivé. BEM est une méthodologie qui nous permet de réduire les problèmes de spécificité en nous faisant écrire des noms de classe uniques. BEM résout le problème de spécificité, mais rend le code HTML plus détaillé. Les noms de classe peuvent devenir inutilement longs, et il est difficile de créer des noms de classe uniques lorsque vous avez une énorme application Web.

Après cela, les modules CSS sont nés. Les modules CSS ont résolu ce que ni Sass ni BEM ne pouvaient résoudre – le problème des noms de classe uniques – en utilisant des outils plutôt qu'en s'appuyant sur le nom donné par un développeur, ce qui a résolu les problèmes de spécificité. Les modules CSS ont acquis une grande popularité dans l'écosystème React, ouvrant la voie à des projets comme glamour .

Le seul problème avec toutes ces nouvelles solutions était que les développeurs étaient amenés à apprendre de nouvelles syntaxes. Et si nous pouvions écrire CSS exactement comment nous l'écrivons dans un fichier .css mais en JS? Et c'est ainsi que styled-composant a été créé.

Styled Components utilise Template Literals une fonction ES6. Les littéraux de modèle sont des chaînes de caractères permettant des expressions incorporées. Ils permettent d'utiliser des chaînes multilignes et des fonctions d'interpolation de chaînes.

Le principal argument de vente de Styled Components est qu'il nous permet d'écrire du code CSS exact dans JS.

Styled Components présente de nombreux avantages. Vous trouverez ci-dessous certains des avantages et inconvénients des composants stylés.

Pour

L'utilisation de composants stylés présente de nombreux avantages.

  1. Injecter des CSS critiques dans le DOM

    Les composants stylés n'injectent que des CSS critiques. page. Cela signifie que les utilisateurs ne téléchargent que les feuilles de style CSS nécessaires pour cette page et rien d'autre. Cela charge la page Web plus rapidement.

  2. Plus petit groupe CSS par page

    Comme il n'injecte que les styles utilisés dans les composants de la page, la taille du groupe est considérablement réduite. Vous ne chargez que le CSS dont vous avez besoin, au lieu de feuilles de style excessives, de normalisateurs, de réactivité, etc.

  3. Préfixe automatique du vendeur

    Styled Components vous permet d'écrire votre CSS et ses préfixes de vendeur automatiquement, conformément au dernier standard.

  4. Suppression du code CSS inutilisé

    Avec les composants stylés, il est plus facile de supprimer le code CSS inutilisé ou inutilisé, car les styles sont colocalisés avec le composant. Cela a également un impact sur la réduction de la taille du paquet.

  5. Theming is easy

    Les composants stylisés facilitent vraiment le thème d'une application React. Vous pouvez même avoir plusieurs thèmes dans vos applications tout en les maintenant facilement.

  6. Réduit le nombre de requêtes HTTP

    En l'absence de fichiers CSS pour les réinitialisations, les normalisateurs et la réactivité, le nombre de requêtes HTTP est considérablement réduit.

  7. Noms de classe uniques

    Styled Components génère des noms de classe uniques chaque fois qu'une étape de construction a lieu. Cela permet d'éviter les collisions de nommage ou les problèmes de spécificité. Plus besoin d'avoir des conflits mondiaux et d'être obligés de les résoudre avec les balises ! Important .

  8. La maintenance est facile

    Styled Components vous permet de co-localiser des styles avec le composant. Cela permet un entretien sans douleur. Vous savez exactement quel style affecte votre composant, contrairement à un gros fichier CSS.

Contre

Bien sûr, rien n’est parfait. Examinons quelques inconvénients associés aux composants stylisés.

  1. Impossible de mettre en cache les feuilles de style

    En règle générale, un navigateur Web met en cache les fichiers .css lorsqu'un utilisateur visite un site Web lors de sa prochaine visite. t devez télécharger le même .css à nouveau. Mais avec styled-components les styles sont chargés dans le DOM à l'aide de la balise