Inhaltsverzeichnis
$ attrs
$listeners (官网解释)
$listeners (Offizielle Website-Erklärung)
Heim Web-Frontend View.js Lernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung

Lernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung

Dec 28, 2021 pm 07:15 PM
$attrs $listeners vue

Dieser Artikel führt Sie durch die leistungsstarken Tools zum Kapseln von Komponenten in vue: $attrs- und $listeners-Attribute und zeigt, wie sie verwendet werden. Ich hoffe, dass er für alle hilfreich ist!

Lernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung

Wenn bei der mehrstufigen Komponentenverschachtelung Daten übergeben werden müssen, wird normalerweise vuex verwendet. Aber einfach Daten ohne Zwischenverarbeitung zu übertragen und vuex für die Verarbeitung zu verwenden, ist übertrieben. Es gibt also zwei Attribute: $attrs und $listeners, die normalerweise zusammen mit inheritAttrs verwendet werden. [Verwandte Empfehlungen: vuejs Video-Tutorialvuex。但仅仅是传递数据,不做中间处理,使用 vuex 处理,未免有些大材小用了。所以就有了 $attrs 、 $listeners两个属性 ,通常配合 inheritAttrs 一起使用。【相关推荐:vuejs视频教程

$attrs

  • 从父组件传给自定义子组件的属性,如果没有 prop 接收会自动设置到子组件内部的最外层标签上,如果是 classstyle 的话,会合并最外层标签的 classstyle
  • 如果子组件中不想继承父组件传入的非 prop 属性,可以使用 inheritAttrs 禁用继承,然后通过 v-bind="$attrs" 把外部传入的 非 prop 属性设置给希望的标签上,但是这不会改变 classstyle

inheritAttrs 属性

2.4.0 新增

官网链接 https://cn.vuejs.org/v2/api/#inheritAttrs

  • 类型boolean

  • 默认值true

  • 详细

    默认情况下父作用域的不被认作 props 的 attribute 绑定 (attribute bindings) 将会“回退”且作为普通的 HTML attribute 应用在子组件的根元素上。当撰写包裹一个目标元素或另一个组件的组件时,这可能不会总是符合预期行为。通过设置 inheritAttrs 到 false,这些默认行为将会被去掉。而通过 (同样是 2.4 新增的) 实例 property $attrs 可以让这些 attribute 生效,且可以通过 v-bind 显性的绑定到非根元素上。

    注意:这个选项不影响 class 和 style 绑定。

例子:

父组件

<template>
  <my-input
      required
      placeholder="请输入内容"
      type="text"
      class="theme-dark"
  />
</template>

<script>
import MyInput from &#39;./child&#39;
export default {
  name: &#39;parent&#39;,
  components: {
    MyInput
  }
}
</script>
Nach dem Login kopieren

子组件

<template>
  <div>
    <input
        v-bind="$attrs"
        class="form-control"
    />
  </div>
</template>

<script>
export default {
  name: &#39;MyInput&#39;,
  inheritAttrs: false
}
</script>
Nach dem Login kopieren

子组件中没有接受父组件中传过来的值,也没有绑定,但是有v-bind="$attrs"这个属性,他会自动接受并绑定

inheritAttrs: false

Lernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung

inheritAttrs: true

Lernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung

$listeners (官网解释)

  • listeners: 包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件——在创建更高层次的组件时非常有用。

先上代码:这里只举例focueinput两个原生事件

// 父组件
<template>
  <my-input
      required
      placeholder
      class="theme-dark"
      @focue="onFocus"
      @input="onInput"
  >
  </my-input>
</template>
<script>
import MyInput from &#39;./child&#39;
export default {
  components: {
    MyInput
  },
  methods: {
    onFocus (e) {
      console.log(e.target.value)
    },
    onInput (e) {
      console.log(e.target.value)
    }
  }
}
</script>
Nach dem Login kopieren
// 子组件
<template>
  <div>
    <input
        type="text"
        v-bind="$attrs"
        class="form-control"
        @focus="$emit(&#39;focus&#39;, $event)"
        @input="$emit(&#39;input&#39;, $event)"
    />
  </div>
</template>

<script>
export default {
  name: &#39;MyInput&#39;,
  inheritAttrs: false
}
</script>
Nach dem Login kopieren

这样绑定原生事件很麻烦,每一个原生事件都需要绑定,但用v-on="$listeners"]

$ attrs

  • Attribute, die von der übergeordneten Komponente an die benutzerdefinierte untergeordnete Komponente übergeben werden, werden automatisch auf das äußerste Tag innerhalb der untergeordneten Komponente gesetzt, wenn kein prop für < empfangen wird code>class und style werden die class und style des äußersten Tags zusammengeführt.
  • Wenn die untergeordnete Komponente die von der übergeordneten Komponente übergebenen Nicht-prop-Attribute nicht erben möchte, können Sie mit inheritAttrs die Vererbung deaktivieren. und dann übergeben v-bind ="$attrs" setzt die extern übergebenen Nicht-prop-Attribute auf das gewünschte Tag, aber dadurch wird class</code nicht geändert > und <code>style< /code>. </li></ul><p><strong><span style="font-size: 18px;">inheritAttrs-Attribut</span></strong></p><blockquote><p>2.4.0 hinzugefügt <a href="https://www.php.cn/vuejs/" target="_blank" textvalue="vuejs教程"></a>offizieller Website-Link https ://cn.vuejs.org/v2/api/#inheritAttrs<a href="https://www.php.cn/course/list/1.html" target="_blank"></blockquote><ul><li></a><strong>Typ</strong>: <code>boolean

  • < li>🎜Standardwert: true🎜
  • 🎜Details: 🎜🎜Standardmäßig ist der übergeordnete Bereich kein Attribut Als Requisiten erkannte Bindungen werden „zurückfallen“ und als normale HTML-Attribute auf das Stammelement der untergeordneten Komponente angewendet. Beim Schreiben einer Komponente, die ein Zielelement oder eine andere Komponente umschließt, entspricht dies möglicherweise nicht immer dem erwarteten Verhalten. Durch Festlegen von inheritAttrs auf false werden diese Standardverhalten entfernt. Diese Attribute können über die Instanzeigenschaft (ebenfalls neu in 2.4) wirksam gemacht werden und können über v-bind explizit an Nicht-Root-Elemente gebunden werden. 🎜🎜Hinweis: Diese Option hat keine Auswirkung auf class- und style-Bindungen. 🎜
🎜Beispiel: 🎜🎜Übergeordnete Komponente🎜
 <input
        type="text"
        v-bind="$attrs"
        class="form-control"
+       v-on="$listeners"
-       @focus="$emit(&#39;focus&#39;, $event)"
-       @input="$emit(&#39;input&#39;, $event)"
    />
Nach dem Login kopieren
🎜Untergeordnete Komponente🎜rrreee🎜Untergeordnete Komponente akzeptiert den von der übergeordneten Komponente übergebenen Wert nicht und ist auch nicht gebunden, aber mit dem Attribut v-bind="$attrs" wird er automatisch akzeptiert und gebunden 🎜🎜inheritAttrs: false🎜🎜 Lernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung🎜🎜inheritAttrs: true 🎜🎜Lernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung🎜

$listeners (Offizielle Website-Erklärung)

  • listeners: Enthält den Inhalt im übergeordneten Bereich (ausgenommen .native code> decorator's) <code>v-on-Ereignis-Listener. Es kann über v-on="$listeners" an interne Komponenten übergeben werden – sehr nützlich beim Erstellen von Komponenten auf höherer Ebene.
🎜Beginnen wir mit dem Code: Hier sind nur zwei Beispiele für native Ereignisse, focue und input🎜rrreeerrreee🎜Es ist sehr mühsam, native Ereignisse zu binden Ereignisse wie dieses, jedes Alle nativen Ereignisse müssen gebunden werden, aber die Verwendung von v-on="$listeners" erspart Ihnen viel Ärger🎜rrreee🎜Diese eine Codezeile kann das Bindungsproblem lösen alle nativen Veranstaltungen🎜🎜【Verwandte Empfehlungen: „🎜vuejs Tutorial🎜“, „🎜Web-Frontend🎜“]🎜

Das obige ist der detaillierte Inhalt vonLernen Sie die Attribute $attrs und $listeners in Vue kennen und sprechen Sie über deren Verwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie Echarts in Vue So verwenden Sie Echarts in Vue May 09, 2024 pm 04:24 PM

Durch die Verwendung von ECharts in Vue können Sie Ihrer Anwendung ganz einfach Datenvisualisierungsfunktionen hinzufügen. Zu den spezifischen Schritten gehören: Installieren von ECharts- und Vue ECharts-Paketen, Einführung von ECharts, Erstellen von Diagrammkomponenten, Konfigurieren von Optionen, Verwenden von Diagrammkomponenten, Anpassen von Diagrammen an Vue-Daten, Hinzufügen interaktiver Funktionen und Verwenden erweiterter Verwendungsmöglichkeiten.

Die Rolle des Exportstandards in Vue Die Rolle des Exportstandards in Vue May 09, 2024 pm 06:48 PM

Frage: Welche Rolle spielt der Exportstandard in Vue? Detaillierte Beschreibung: Exportstandard definiert den Standardexport der Komponente. Beim Importieren werden Komponenten automatisch importiert. Vereinfachen Sie den Importvorgang, verbessern Sie die Übersichtlichkeit und vermeiden Sie Konflikte. Wird häufig zum Exportieren einzelner Komponenten verwendet, wobei sowohl benannte als auch Standardexporte verwendet werden und globale Komponenten registriert werden.

So verwenden Sie die Kartenfunktion in Vue So verwenden Sie die Kartenfunktion in Vue May 09, 2024 pm 06:54 PM

Die Kartenfunktion von Vue.js ist eine integrierte Funktion höherer Ordnung, die ein neues Array erstellt, wobei jedes Element das transformierte Ergebnis jedes Elements im ursprünglichen Array ist. Die Syntax lautet map(callbackFn), wobei callbackFn jedes Element im Array als erstes Argument empfängt, optional den Index als zweites Argument, und einen Wert zurückgibt. Die Kartenfunktion ändert das ursprüngliche Array nicht.

Der Unterschied zwischen Event und $event in Vue Der Unterschied zwischen Event und $event in Vue May 08, 2024 pm 04:42 PM

In Vue.js ist event ein natives JavaScript-Ereignis, das vom Browser ausgelöst wird, während $event ein Vue-spezifisches abstraktes Ereignisobjekt ist, das in Vue-Komponenten verwendet wird. Im Allgemeinen ist die Verwendung von $event bequemer, da es so formatiert und erweitert ist, dass es die Datenbindung unterstützt. Verwenden Sie „event“, wenn Sie auf bestimmte Funktionen des nativen Ereignisobjekts zugreifen müssen.

Der Unterschied zwischen Export und Exportstandard in Vue Der Unterschied zwischen Export und Exportstandard in Vue May 08, 2024 pm 05:27 PM

Es gibt zwei Möglichkeiten, Module in Vue.js zu exportieren: Export und Export Default. export wird zum Exportieren benannter Entitäten verwendet und erfordert die Verwendung von geschweiften Klammern; export default wird zum Exportieren von Standardentitäten verwendet und erfordert keine geschweiften Klammern. Beim Importieren müssen per Export exportierte Entitäten ihre Namen verwenden, während per Exportstandard exportierte Entitäten implizit verwendet werden können. Es wird empfohlen, die Export-Standardeinstellung für Module zu verwenden, die mehrmals importiert werden müssen, und die Export-Standardeinstellung für Module, die nur einmal exportiert werden müssen.

Die Rolle von Onmount in Vue Die Rolle von Onmount in Vue May 09, 2024 pm 02:51 PM

onMounted ist ein Lebenszyklus-Hook für die Komponentenmontage in Vue. Seine Funktion besteht darin, Initialisierungsvorgänge durchzuführen, nachdem die Komponente im DOM bereitgestellt wurde, z. B. das Abrufen von Referenzen auf DOM-Elemente, das Festlegen von Daten, das Senden von HTTP-Anforderungen, das Registrieren von Ereignis-Listenern usw. Es wird nur einmal aufgerufen, wenn die Komponente gemountet wird. Wenn Sie Vorgänge ausführen müssen, nachdem die Komponente aktualisiert wurde oder bevor sie zerstört wurde, können Sie andere Lebenszyklus-Hooks verwenden.

Was sind Hooks in Vue Was sind Hooks in Vue May 09, 2024 pm 06:33 PM

Vue-Hooks sind Rückruffunktionen, die Aktionen bei bestimmten Ereignissen oder Lebenszyklusphasen ausführen. Dazu gehören Lebenszyklus-Hooks (wie beforeCreate, mount, beforeDestroy), Event-Handling-Hooks (wie click, input, keydown) und benutzerdefinierte Hooks. Hooks verbessern die Komponentenkontrolle, reagieren auf Komponentenlebenszyklen, verarbeiten Benutzerinteraktionen und verbessern die Wiederverwendbarkeit von Komponenten. Um Hooks zu verwenden, definieren Sie einfach die Hook-Funktion, führen Sie die Logik aus und geben Sie einen optionalen Wert zurück.

Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? Für welche Szenarien können Ereignismodifikatoren in Vue verwendet werden? May 09, 2024 pm 02:33 PM

Vue.js-Ereignismodifikatoren werden verwendet, um bestimmte Verhaltensweisen hinzuzufügen, darunter: Verhindern von Standardverhalten (.prevent), Stoppen von Ereignisblasen (.stop), Einmaliges Ereignis (.once), Erfassen von Ereignissen (.capture), Passives Abhören von Ereignissen (.passive), Adaptiv Modifikator (.self)Schlüsselmodifikator (.key)

See all articles