方式1:
使用vue-router 在IE下 a标签里的路由不跳转,火狐,chrome工作正常。
后面查资料发现原因:因为当url的hash change的时候,浏览器没有做出相应改变,所以需要一个兼容方案:
function checkIE(){
return '-ms-scroll-limit' in document.documentElement.style && '-ms-ime-align' in document.documentElement.style
}
if (checkIE()) {
window.addEventListener('hashchange', () => {
var currentPath = window.location.hash.slice(1);
if (this.$route.path !== currentPath) {
this.$router.push(currentPath)
}
}, false)
}
将这段代码粘贴到app.vue的mounted中可以解决该问题
原文链接:https://blog.csdn.net/iorn_mangg/article/details/87856063
方式2:在app中
参考地址https://www.cnblogs.com/first-time/p/7067674.html
<router-view :key=key></router-view>
computed: {
key() {
returnthis.$route.name !== undefined?this.$route.name +newDate():this.$route +new Date()
}
}
方式3:直接监听路由(本人没有亲测)
const User = {
template: '...',
watch: {
'$route' (to, from) {
// 对路由变化作出响应...
}
}
}