Sie beziehen sich wahrscheinlich auf dieses Beispiel:
<v-toolbar color="grey darken-1" dark>
<v-menu :nudge-width="100">
<template v-slot:activator="{ on }">
<v-toolbar-title v-on="on">
<span>All</span>
<v-icon dark>arrow_drop_down</v-icon>
</v-toolbar-title>
</template>
...
</v-menu>
</v-toolbar>
In der folgenden Zeile wird ein Bereichsbereich mit dem Namen deklariert activator
, und es wird ein Bereichsobjekt (von VMenu
) bereitgestellt , das eine Eigenschaft mit dem Namen enthält on
:
<template v-slot:activator="{ on }">
Dies verwendet die Destrukturierungssyntax für das Bereichsobjekt, die der IE nicht unterstützt .
Für IE müssten Sie on
vom Bereichsobjekt selbst dereferenzieren :
<template v-slot:activator="scope">
<v-toolbar-title v-on="scope.on">
Aber die ideale Lösung IMO ist die Verwendung eines Vue CLI erzeugt Projekt, das ein Babel Preset enthält ( @vue/babel-preset-app
) , um automatisch schließen die Transformationen / polyfills für die benötigten Ziel Browser. In diesem Fall wird babel-plugin-transform-es2015-destructuring
automatisch während des Builds angewendet.
Details zum activator
Steckplatz
VMenu
Ermöglicht Benutzern die Angabe einer geschlitzten Vorlage mit dem Namen activator
Komponenten, die das Menü bei bestimmten Ereignissen aktivieren / öffnen (z click
. B. ). VMenu
stellt Listener für diese Ereignisse über ein Objekt bereit , das an den activator
Steckplatz übergeben wird:
<v-menu>
<template v-slot:activator="scopeDataFromVMenu">
</template>
</v-menu>
Der Slot-Inhalt kann VMenu
wie folgt auf die Ereignis-Listener zugreifen :
<v-menu>
<template v-slot:activator="scopeDataFromVMenu">
<button v-on="scopeDataFromVMenu.on">Click</button>
</template>
</v-menu>
Zur besseren Lesbarkeit kann die scoped Daten auch sein destructured in der Vorlage:
<v-menu>
<template v-slot:activator="{ on }">
<button v-on="on">Click</button>
</template>
</v-menu>
Die Listener aus dem Bereichsobjekt werden an die Objektsyntax von <button>
with übergeben v-on
, die ein oder mehrere Ereignis / Listener-Paare an das Element bindet. Für diesen Wert von on
:
{
click: activatorClickHandler
}
... der Klick-Handler der Schaltfläche an eine VMenu
Methode gebunden ist .