Maison > Questions et réponses > le corps du texte
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粉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 :
类型安全
。但即使在 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
types
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.