我已在我的应用中集成了对讲机,每次我的网址更改时我都需要拨打window.Intercom('update');
。
我知道我可以在mounted()
添加它,但我宁愿不修改我的所有组件,而是直接使用navigation guards来完成。 (主要是为了避免在10个不同的地方使用相同的代码。
目前我有:
router.afterEach((to, from) => {
eventHub.$off(); // I use this for an other things, here is not important
console.log(window.location.href ) // this prints the previous url
window.Intercom('update'); // which means that this also uses the previous url
})
在更改网址之前运行intercom('update')
,而我需要在网址更改后运行它。
是否有一个挂钩,当网址发生变化时才会运行? 我怎么能这样做?
由于
答案 0 :(得分:9)
不确定这会有效,因为你已经拥有它似乎应该没问题但是这里......
尝试watching the $route
object进行更改
new Vue({
// ...
watch: {
'$route': function(to, from) {
Intercom('update')
}
}
})
答案 1 :(得分:3)
我刚刚提出了菲尔以外的其他解决方案,你也可以使用Global Mixin。它将其方法或生命周期钩子合并到每个组件中。
Vue.mixin({
mounted() {
// do what you need
}
})