# Divers
# name
Type:
string
Détails:
Autorise le composant à s’appeler de manière récursive dans son template. Notez que lorsqu'un composant est enregistré globalement avec
Vue.createApp({}).component({})
, l'ID global est automatiquement défini comme son nom.Un autre avantage de spécifier une option
name
est le débogage. Les composants nommés génèrent des messages d'avertissement plus utiles. De plus, lors de l'inspection d'une application dans vue-devtools (opens new window), les composants sans nom apparaîtront sous la forme<AnonymousComponent>
, ce qui n'est pas très informatif. En fournissant l'optionname
, vous obtiendrez une arborescence de composants beaucoup plus informative.
# delimiters
Type:
Array<string>
Default:
['{{', '}}']
Restrictions: Cette option n'est disponible que dans le build complet, avec la compilation des templates dans le navigateur.
Détails:
Définit les délimiteurs utilisés pour l'interpolation de texte dans le modèle.
En règle générale, cela est utilisé pour éviter les conflits avec les frameworks côté serveur qui utilisent également la syntaxe moustache.
Exemple:
Vue.createApp({ // Délimiteurs modifiés en style de template string ES6 delimiters: ['${', '}'] })
1
2
3
4
# inheritAttrs
Type:
boolean
Default:
true
Détails:
Par défaut, les liaisons d'attributs dans le scope parent qui ne sont pas reconnues comme des props seront "échouées". Cela signifie que lorsque nous avons un composant racine unique, ces liaisons seront appliquées à l'élément racine du composant enfant en tant qu'attributs HTML normaux. Lors de la création d'un composant qui encapsule un élément cible ou un autre composant, cela peut ne pas toujours être le comportement souhaité. En définissant
inheritAttrs
surfalse
, ce comportement par défaut peut être désactivé. Les attributs sont disponibles via la propriété d'instance$attrs
et peuvent être explicitement liés à un élément non racine en utilisantv-bind
.Usage:
app.component('base-input', { inheritAttrs: false, props: ['label', 'value'], emits: ['input'], template: ` <label> {{ label }} <input v-bind="$attrs" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" > </label> ` })
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15Voir aussi: Desactiver l'héritage d'attributs