À propos du projet
Classnames est un utilitaire JavaScript qui construit une chaîne de noms de classes CSS séparés par des espaces à partir d'entrées conditionnelles. Il peut être installé depuis npm sous le nom `classnames` et utilisé dans Node.js, Browserify, webpack, RequireJS, ou directement dans un navigateur via un script autonome.
La fonction principale `classNames` accepte un nombre quelconque d'arguments. Les chaînes sont incluses directement, tandis que les clés d'objets ne sont incluses que lorsque leur valeur associée est vraie. Les valeurs fausses telles que `false`, `null`, `undefined`, `0` et les chaînes vides sont ignorées. Les tableaux sont aplatis récursivement en utilisant les mêmes règles. Les clés d'objets calculées ES2015 peuvent être utilisées pour générer des noms de classes dynamiques.
Le package est couramment utilisé avec React pour simplifier les props `className` conditionnelles, remplaçant la concaténation manuelle de chaînes et l'ancien add-on React `classSet`. Il peut combiner une classe de base, un nom de classe fourni par un composant et des classes dépendant de l'état en un seul appel.
Deux variantes optionnelles sont fournies. `classnames/dedupe` supprime les classes en double et permet à une entrée d'objet fausse ultérieure d'exclure une classe antérieure ; le README note que cette variante est plus lente. `classnames/bind` est destiné à CSS Modules ou à des configurations similaires, mappant des noms de classes logiques à des valeurs provenant d'un objet de styles importé.
Pour les navigateurs plus anciens tels qu'Internet Explorer 8 et versions antérieures, la version 2.x nécessite un polyfill `Array.isArray`. Le projet suit le Semantic Versioning, comprend une suite de tests et est publié sous la licence MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.