Maison  >  Questions et réponses  >  le corps du texte

Déclarez les accessoires dans les tableaux et les tableaux d'objets

Je viens de découvrir, ne définissez pas les propriétés des composants comme ceci :

    const props = defineProps({
        id: Number,
        title: String,
        name: String,
    })

Je peux faire ça :

    defineProps([
        'id',
        'title',
        'name',
    ])

Cela vous semble inutile type 声明,但是这样做有什么缺点吗? vue是否自己确定每个属性的type ?

J'utilise script setup.

P粉238433862P粉238433862211 Il y a quelques jours313

répondre à tous(2)je répondrai

  • P粉023326773

    P粉0233267732024-03-22 13:20:54

    C'est plus qu'une simple type déclaration.

    Il s'agit d'une fonction de vérification des accessoires. La syntaxe complète est

    const props = defineProps({
        name: String,
        id: [ Number, String ],
        style: {
            type: Object,
            default: ()=>{
                color: "red",
                bg-color: "white"
            },
            validator: function (value) {
                return ['red', 'blue', 'green'].includes(value.color)
            }
        },
    })

    Les inconvénients de l'utilisation d'accessoires nommés sont donc :

    1. Sans 类型安全 。但即使在 typed props, il affichera également uniquement les avertissements de la console dans les versions de développement.

    L'avantage d'utiliser la définition d'accessoire est

    1. Multiple types
    2. d'un seul accessoire
    3. Valeur par défaut des accessoires
    4. Fonction de validation personnalisée

    répondre
    0
  • P粉262113569

    P粉2621135692024-03-22 10:11:21

    L'inconvénient est bien sûr une mauvaise sécurité.

    Vue détermine-t-elle elle-même le type de chaque propriété ? Pas question

    Lorsqu'il fournit un tableau de chaînes, Vue ne valide pas du tout le type des accessoires passés, donc s'ils sont utilisés incorrectement (ce qui est plus susceptible de se produire avec d'autres développeurs/futurs, vous n'avez aucun moyen de savoir ce qui doit être passé sans lire le reste du code du composant), vous vous retrouvez avec des erreurs d'exécution quelque part dans le composant au lieu d'erreurs/avertissements propres (ou d'erreurs raisonnables de l'IDE) concernant la mauvaise valeur transmise en tant qu'accessoire

    La plupart du temps, vous devez utiliser autant de définitions d'accessoires spécifiques que possible.

    répondre
    0
  • Annulerrépondre