Ответ 1
Вы, вероятно, ссылаетесь на этот пример:
<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>
Следующая строка объявляет область слота с именем activator
, и ей предоставляется объект области (из VMenu
), который содержит свойство с именем on
:
<template v-slot:activator="{ on }">
При этом используется деструктурирующий синтаксис для объекта области, который IE не поддерживает.
Для IE вы должны разыменовать on
из самого объекта области видимости:
<template v-slot:activator="scope">
<v-toolbar-title v-on="scope.on">
Но идеальным решением IMO является использование сгенерированного проекта Vue CLI, который включает в себя предустановку Babel (@vue/babel-preset-app
) для автоматического включения преобразований/многогранников, необходимых для целевые браузеры. В этом случае babel-plugin-transform-es2015-destructuring
будет автоматически применено во время сборки.
Подробная информация о слоте activator
VMenu
позволяет пользователям указывать шаблон со слотами с именем activator
, содержащий компонент (ы), которые активируют/открывают меню при определенных событиях (например, click
). VMenu
предоставляет прослушиватели для этих событий через объект, передаваемый в слот activator
:
<v-menu>
<template v-slot:activator="scopeDataFromVMenu">
<!-- slot content goes here -->
</template>
</v-menu>
Содержимое слота может обращаться к прослушивателям событий VMenu
следующим образом:
<v-menu>
<template v-slot:activator="scopeDataFromVMenu">
<button v-on="scopeDataFromVMenu.on">Click</button>
</template>
</v-menu>
Для улучшения читаемости данные области также могут быть деструктурированы в шаблоне:
<!-- equivalent to above -->
<v-menu>
<template v-slot:activator="{ on }">
<button v-on="on">Click</button>
</template>
</v-menu>
Слушатели из объекта области передаются в <button>
с синтаксисом объекта v-on
, который связывает одну или несколько пар событие/слушатель с элементом. Для этого значения on
:
{
click: activatorClickHandler // activatorClickHandler is an internal VMenu mixin
}
... обработчик нажатия кнопки привязан к методу VMenu
.