mixin-common-methods.js
よく使うやつ
code:js
import Vue from 'vue'
Vue.mixin({
destroyed() {
if (this._eventRemovers) {
this._eventRemovers.forEach(function(eventRemover) {
eventRemover.remove()
})
}
},
methods: {
listen(target, eventType, callback) {
if (!this._eventRemovers) {
this._eventRemovers = []
}
target.addEventListener(eventType, callback)
this._eventRemovers.push({
remove() {
target.removeEventListener(eventType, callback)
}
})
},
$delay(ms) {
return new Promise((resolve) => setTimeout(resolve, ms))
}
}
})
code:nuxt.config.js
plugins: [
'@/plugins/mixin-common-methods'
],
使い方
code:js
// Event listener
this.listen(window, 'scroll', this.scrollEvent)
code:js
// setTimeout
async animation() {
this.animationStart()
await this.$delay(300) // 0.3s
this.animationFinished()
}