Skip to main content

mountable

mountableMixin

MountableMixin

Mixin for objects that are mounted by Google Maps Javascript API.

These are objects that are sensitive to element resize operations so it exposes a property which accepts a bus

The mixin code:

  export default {
props: ['resizeBus'],

data() {
return {
_actualResizeBus: null,
};
},

created() {
if (typeof this.resizeBus === 'undefined') {
this.$data._actualResizeBus = this.$gmapDefaultResizeBus;
} else {
this.$data._actualResizeBus = this.resizeBus;
}
},

methods: {
_resizeCallback() {
this.resize();
},
_delayedResizeCallback() {
this.$nextTick(() => this._resizeCallback());
},
},

watch: {
resizeBus(newVal) {
this.$data._actualResizeBus = newVal;
},
'$data._actualResizeBus': function actualResizeBus(newVal, oldVal) {
if (oldVal) {
oldVal.$off('resize', this._delayedResizeCallback);
}
if (newVal) {
newVal.$on('resize', this._delayedResizeCallback);
}
},
},

destroyed() {
if (this.$data._actualResizeBus) {
this.$data._actualResizeBus.$off('resize', this._delayedResizeCallback);
}
},
};

Kind: global class
Properties

NameTypeDescription
resizeBusfunction | undefinedVue props to set your custom resize bus function, otherwise it takes the default $gmapDefaultResizeBus
_actualResizeBusfunction | undefinedThe current default resize bus function, this should not be used outside of this mixin