Вы должны создать компонент вместо директивы для этого:
Vue.component('gmap', {
template: '<div/>',
mounted() {
this.map = new google.maps.Map(this.$el, {
center: { lat: -34.397, lng: 150.644 },
zoom: 8,
});
const marker = new google.maps.Marker({
map: this.map,
position: { lat: -34.397, lng: 150.644 },
title: 'Hello World!',
});
},
});
<gmap style="height: 360px"/>
Это, конечно, только начало. Вы можете пропустить маркеры через опору, если хотите, чтобы маркеры контролировались извне из компонента; Вам решать, как вы хотите, чтобы он функционировал.