recherche
Maisoninterface WebVoir.jsExplication détaillée de la fonction des noms de classe dans Vue3 : méthode de rendu flexible des noms de classe

Dans Vue3, il est souvent nécessaire de générer dynamiquement des noms de classes dans les composants. Comme transformer le style d'un élément en réponse à l'interaction de l'utilisateur ou ajouter un nom de classe à un élément spécifique lors du rendu des éléments d'une liste.

Dans de tels cas, la fonction classnames est un outil très utile, qui peut nous aider à générer des noms de classe de manière plus pratique et plus flexible.

Cet article présentera en détail l'utilisation de la fonction classnames et comment l'utiliser dans Vue3.

Qu'est-ce que la fonction classnames ?

La fonction classnames est une bibliothèque Javascript qui peut combiner plusieurs chaînes de nom de classe en une seule chaîne de nom de classe.

Ce qui suit est un exemple simple :

import classNames from 'classnames';

const isActive = true;
const classNamesString = classNames('button', { 'is-active': isActive });
console.log(classNamesString); // "button is-active"

Dans le code ci-dessus, nous utilisons la fonction classnames pour convertir les deux chaînes de nom de classe 'button' code > et <code>'is-active' sont combinés dans une chaîne de nom de classe de 'button is-active'. 'button''is-active'合并成了一个'button is-active'的类名字符串。

classNames函数接收任意数量的参数。除了类名字符串之外,它还可以接收一个对象作为参数。这个对象中包含若干个键值对,其中键是类名字符串,值是一个布尔值。如果某个布尔值为真,那么对应的类名就会被包括在最终输出的类名字符串中。如果布尔值为假,那么对应的类名就会被忽略。

在上面的例子中,我们通过对象{ 'is-active': isActive }来指定了一个名为'is-active'的类名,其值为true。因此,当isActive变量为真时,最终的类名字符串中就包含了'is-active'这个类名。

classnames函数还可以接收多个参数,每个参数可以是一个类名字符串或一个对象。这样,我们就可以将多个类名字符串和对象组合起来,生成一个复杂的类名字符串。

以下是一个更复杂的例子:

import classNames from 'classnames';

const size = 'small';
const color = 'blue';
const disabled = true;
const classNamesString = classNames(
  'button',
  { 'is-disabled': disabled },
  `${color}-background`,
  `${size}-text`
);
console.log(classNamesString); // "button is-disabled blue-background small-text"

在上面的代码中,我们通过对象{ 'is-disabled': disabled }来指定了一个名为'is-disabled'的类名,其值为true。因此,当disabled变量为真时,最终的类名字符串中就包含了'is-disabled'这个类名。

除了对象之外,我们还可以将字符串直接传递给classnames函数。在上面的代码中,我们将${color}-background${size}-text这两个带有变量的字符串传递给了classnames函数,它会将这些字符串作为类名字符串包含在最终输出的类名字符串中。

如何在Vue3中使用classnames函数?

在Vue3中,使用classnames函数非常简单。我们只需要在组件中导入classnames函数,然后将其应用到需要渲染的元素上即可。

以下是一个示例组件,它使用了classnames函数来为元素生成类名:

<template>
  <div
    :class="[
      'button',
      classNames({
        'is-active': isActive,
        'is-disabled': isDisabled
      })
    ]"
  >
    {{ text }}
  </div>
</template>

<script>
import { defineComponent } from 'vue';
import classNames from 'classnames';

export default defineComponent({
  props: {
    text: String,
    isActive: Boolean,
    isDisabled: Boolean
  },
  setup(props) {
    return {
      classNames
    };
  }
});
</script>

在上面的代码中,我们使用了Vue3的class绑定来动态生成元素的类名。我们将一个数组传递给:class,其中包含了'button'这个类名字符串和一个调用classnames函数的表达式。

在调用classnames函数时,我们传递了一个包含两个键值对的对象。这两个键分别是'is-active''is-disabled',它们的值分别是isActiveisDisabled

La fonction classNames accepte n'importe quel nombre de paramètres. En plus de la chaîne du nom de classe, il peut également recevoir un objet en paramètre. Cet objet contient plusieurs paires clé-valeur, où la clé est une chaîne de nom de classe et la valeur est une valeur booléenne. Si une valeur booléenne est vraie, le nom de classe correspondant sera inclus dans la chaîne de nom de classe de sortie finale. Si la valeur booléenne est fausse, le nom de classe correspondant est ignoré.

Dans l'exemple ci-dessus, nous spécifions un objet nommé 'is-active'via l'objet { 'is-active': isActive > class nom, sa valeur est true. Par conséquent, lorsque la variable isActive est vraie, la chaîne de nom de classe finale contient le nom de classe 'is-active'.

La fonction classnames peut également recevoir plusieurs paramètres, chaque paramètre peut être une chaîne de nom de classe ou un objet. De cette façon, nous pouvons combiner plusieurs chaînes de nom de classe et objets pour générer une chaîne de nom de classe complexe.

Voici un exemple plus complexe : #🎜🎜#rrreee#🎜🎜#Dans le code ci-dessus, on passe l'objet { 'is-disabled': désactivé } à spécifiez un nom de classe nommé 'is-disabled', sa valeur est true. Par conséquent, lorsque la variable disabled est vraie, la chaîne de nom de classe finale contient le nom de classe 'is-disabled'. #🎜🎜##🎜🎜#En plus des objets, nous pouvons également transmettre des chaînes directement à la fonction classnames. Dans le code ci-dessus, nous transmettons les deux chaînes avec les variables ${color}-background et ${size}-text à la fonction classnames, elle inclura ces chaînes comme chaînes de nom de classe dans la chaîne de nom de classe de sortie finale. #🎜🎜##🎜🎜#Comment utiliser la fonction classnames dans Vue3 ? #🎜🎜##🎜🎜#Dans Vue3, utiliser la fonction classnames est très simple. Il nous suffit d'importer la fonction classnames dans le composant et de l'appliquer aux éléments qui doivent être restitués. #🎜🎜##🎜🎜#Ce qui suit est un exemple de composant qui utilise la fonction classnames pour générer des noms de classe pour les éléments : #🎜🎜#rrreee#🎜🎜#Dans le code ci-dessus, nous utilisons la liaison de classe de Vue3 pour générer dynamiquement la classe nom de l'élément. Nous passons un tableau à :class, qui contient la chaîne de nom de classe 'button' et une expression qui appelle la fonction classnames. #🎜🎜##🎜🎜#Lors de l'appel de la fonction classnames, nous transmettons un objet contenant deux paires clé-valeur. Ces deux clés sont 'is-active' et 'is-disabled', et leurs valeurs sont respectivement isActive et isDisabled Ces deux propriétés du composant. Lorsque ces propriétés sont vraies, le nom de classe correspondant sera inclus dans la chaîne de nom de classe de sortie finale. #🎜🎜##🎜🎜#L'astuce consiste à attacher la fonction classnames à la fonction setup() du composant et à la renvoyer en tant qu'objet réactif. De cette façon, cette fonction peut être directement référencée dans le modèle du composant. #🎜🎜##🎜🎜#Conclusion#🎜🎜##🎜🎜# La fonction classnames est une bibliothèque Javascript très utile qui peut nous aider à générer des chaînes de noms de classe de manière plus pratique et plus flexible. Dans Vue3, nous pouvons facilement utiliser la fonction classnames pour restituer dynamiquement les noms de classe des éléments. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Comprendre Vue.js: principalement un cadre frontalComprendre Vue.js: principalement un cadre frontalApr 17, 2025 am 12:20 AM

Vue.js est un framework JavaScript progressif publié par You Yuxi en 2014 pour créer une interface utilisateur. Ses principaux avantages incluent: 1. Ligneurs de données réactives, vue de mise à jour automatique des modifications de données; 2. Développement des composants, l'interface utilisateur peut être divisée en composants indépendants et réutilisables.

Frontend de Netflix: Exemples et applications de React (ou Vue)Frontend de Netflix: Exemples et applications de React (ou Vue)Apr 16, 2025 am 12:08 AM

Netflix utilise React comme cadre frontal. 1) Le modèle de développement composant de React et un écosystème fort sont les principales raisons pour lesquelles Netflix l'a choisi. 2) Grâce à la composante, Netflix divise les interfaces complexes en morceaux gérables tels que les lecteurs vidéo, les listes de recommandations et les commentaires des utilisateurs. 3) Le cycle de vie virtuel et composant virtuel de React optimise l'efficacité du rendu et la gestion de l'interaction des utilisateurs.

Le paysage frontal: comment Netflix a abordé ses choixLe paysage frontal: comment Netflix a abordé ses choixApr 15, 2025 am 12:13 AM

Le choix de Netflix dans la technologie frontale se concentre principalement sur trois aspects: l'optimisation des performances, l'évolutivité et l'expérience utilisateur. 1. Optimisation des performances: Netflix a choisi React comme cadre principal et outils développés tels que SpeedCurve et Boomerang pour surveiller et optimiser l'expérience utilisateur. 2. Évolutivité: ils adoptent une micro architecture frontale, divisant les applications en modules indépendants, améliorant l'efficacité de développement et l'évolutivité du système. 3. Expérience utilisateur: Netflix utilise la bibliothèque de composants Material-UI pour optimiser en continu l'interface via les tests A / B et les commentaires des utilisateurs pour assurer la cohérence et l'esthétique.

React vs. Vue: Quel framework utilise Netflix?React vs. Vue: Quel framework utilise Netflix?Apr 14, 2025 am 12:19 AM

NetflixUSESACustomFrameworkCalled "gibbon" builtonReact, notreactorVueDirectly.1) teamExperience: ChoOsBasedOnFamiliarity.

Le choix des cadres: qu'est-ce qui motive les décisions de Netflix?Le choix des cadres: qu'est-ce qui motive les décisions de Netflix?Apr 13, 2025 am 12:05 AM

Netflix considère principalement les performances, l'évolutivité, l'efficacité de développement, l'écosystème, la dette technique et les coûts de maintenance dans la sélection du cadre. 1. Performances et évolutivité: Java et Springboot sont sélectionnés pour traiter efficacement des données massives et des demandes simultanées élevées. 2. Efficacité de développement et écosystème: utiliser réagir pour améliorer l'efficacité du développement frontal et utiliser son riche écosystème. 3. Debt technique et coûts de maintenance: choisissez Node.js pour créer des microservices pour réduire les coûts de maintenance et la dette technique.

React, Vue et l'avenir du frontend de NetflixReact, Vue et l'avenir du frontend de NetflixApr 12, 2025 am 12:12 AM

Netflix utilise principalement React comme cadre frontal, complété par Vue pour des fonctions spécifiques. 1) La composante de React et le DOM virtuel améliorent l'efficacité des performances et du développement des applications Netflix. 2) Vue est utilisée dans les outils internes et les petits projets de Netflix, et sa flexibilité et sa facilité d'utilisation sont essentielles.

Vue.js dans le frontend: applications et exemples du monde réelVue.js dans le frontend: applications et exemples du monde réelApr 11, 2025 am 12:12 AM

Vue.js est un cadre JavaScript progressif adapté à la création d'interfaces utilisateur complexes. 1) Ses concepts principaux incluent des données réactives, une composontisation et un DOM virtuel. 2) Dans les applications pratiques, il peut être démontré en créant des applications TODO et en intégrant Vuerouter. 3) Lors du débogage, il est recommandé d'utiliser Vuedevtools et Console.log. 4) L'optimisation des performances peut être obtenue via V-IF / V-show, l'optimisation de rendu de liste, la charge asynchrone des composants, etc.

Vue.js et réagir: comprendre les principales différencesVue.js et réagir: comprendre les principales différencesApr 10, 2025 am 09:26 AM

Vue.js convient aux projets de petite et moyenne taille, tandis que React convient plus aux applications grandes et complexes. 1. Le système réactif de Vue.js met automatiquement à jour le DOM par le suivi de la dépendance, ce qui facilite la gestion des changements de données. 2.Reacte adopte un flux de données unidirectionnel et les données circulent du composant parent au composant enfant, fournissant un flux de données clair et une structure facile à déborder.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP