Я работаю над скаффолдом Vue PWA с Vue CLI, который по умолчанию использует пакет register-service-worker
для представления методов жизненного цикла serviceWorker в registerServiceWorker.js
:
ready () {
console.log(
'App is being served from cache by a service worker.'
)
},
registered () {
console.log('Service worker has been registered.')
},
cached () {
console.log('Content has been cached for offline use.')
},
updatefound () {
console.log('New content is downloading.')
},
updated () {
console.log('New content is available; please refresh.')
},
offline () {
console.log('No internet connection found. App is running in offline mode.')
},
error (error) {
console.error('Error during service worker registration:', error)
}
registerServiceWorker.js
импортируется в main.js
:
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store/index'
import './registerServiceWorker'
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
Вопрос в том, как получить доступ к области вызова методов в моем магазине Vuex $ или в приложении. vue $ refs.components из области действия registerServiceWorker.js
, например
updated () {
// Something like
this.$store.commit('showUpdateNotification')
// OR
this.$refs.updateNotification.show()
}
Я знаю, что для этого могу настроить дополнительные EventListeners в своем приложении, но, кажется, лучше использовать registerServiceWorker.js
?