Déclarez les accessoires dans les tableaux et les tableaux d'objets
P粉238433862
P粉238433862 2024-03-21 18:50:02
0
2
377

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粉238433862
P粉238433862

répondre à tous(2)
P粉023326773

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
P粉262113569

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal