Vue3 inheritAttrs-Eigenschaft


Vue3 选项式 APIVue3 Options API

In Vue3,inheritAttrsist eine Komponentenoption, die bestimmt, ob Nicht-Prop-Attribute (d. h. Attribute, die nicht explizit als Props definiert sind), die von der übergeordneten Komponente an die untergeordnete Komponente übergeben werden, auf das Root-Element der untergeordneten Komponente vererbt werden sollen.

Standardmäßig,inheritAttrsden Wert vontrue, was bedeutet, dass alle von der übergeordneten Komponente übergebenen Nicht-Prop-Attribute automatisch an das Root-Element der untergeordneten Komponente gebunden werden.inheritAttrsgesetzt auffalse。


Wie ist das zu versteheninheritAttrs?

Stellen Sie sich vor, Sie haben eine KomponenteMyButton, sie erhält einelabelals Prop, und Sie möchten, dass die übergeordnete Komponente einige zusätzliche Attribute übergeben kann, wie z. B.classoderstyle. Standardmäßig werden diese zusätzlichen Attribute direkt gebunden anMyButtondas Root-Element von (normalerweise ein<button>Element).

Beispiel

// MyButton.vue
<template>
  <button :class="$attrs.class"> {{ label }} </button>
</template>

<script>
export default {
  props: ['label'],
  inheritAttrs: true
}
</script>

In diesem Beispiel, wenn die übergeordnete Komponente einclassAttribut, wird es automatisch gebunden anMyButtonvon<button>Element.


inheritAttrs: falseDie Rolle von

Wenn Sie nicht möchten, dass diese Nicht-Prop-Attribute automatisch an das Root-Element gebunden werden, können SieinheritAttrsgesetzt auffalse. Auf diese Weise können Sie manuell entscheiden, wie mit diesen Attributen umgegangen werden soll.

Beispiel

// MyButton.vue
<template>
  <div>
    <button> {{ label }} </button>
    <span v-bind="$attrs">Zusätzliche Attribute</span>
  </div>
</template>

<script>
export default {
  props: ['label'],
  inheritAttrs: false
}
</script>

In diesem Beispiel werden Nicht-Prop-Attribute nicht an<button>Element gebunden, sondern stattdessen an<span>Element gebunden. Du kannstv-bind="$attrs"verwenden, um die Attribute an jedes gewünschte Element zu binden.


Anwendungsfälle

  1. Benutzerdefinierte Attributbindung: Wenn du nicht möchtest, dass Nicht-Prop-Attribute automatisch an das Root-Element gebunden werden, kannst duinheritAttrsdeaktivieren und manuell steuern, wie diese Attribute gebunden werden.

  2. Vermeidung von Attributkonflikten: In einigen Fällen können automatisch gebundene Nicht-Prop-Attribute mit den Attributen der untergeordneten Komponente in Konflikt geraten. Das DeaktiviereninheritAttrskann dieses Problem vermeiden.

  3. Fortgeschrittene Komponentenentwicklung: Bei der Entwicklung komplexer Komponenten benötigen Sie möglicherweise mehr Flexibilität beim Umgang mit der Übergabe und Bindung von Attributen.inheritAttrs: falsebietet diese Flexibilität.


Vue3 选项式 APIVue3 Options API

Weitere Erweiterungen