vue3 线上环境切换路由卡死

项目配置
  • vue@3
  • vite@2
  • ts
  • vue-router@4
问题

开发环境上没有问题,部署线上切换路由浏览器页面卡死

'window.webkitStorageInfo' is deprecated. Please use 'navigator.webkitTemporaryStorage' or 'navigator.webkitPersistentStorage' instead.

主要由watch监听整个useRouter()引发浏览器页面卡死

未解决之前代码如下:

let route = useRoute()
// 当前路由name
let currentName = ref()

watch(route,(val)=>{
    currentName.value = val.name
    // 获取tags
    let isExist = tags.filter(item => item.name == currentName.value).length > 0 ? true : false
    let to = JSON.parse(JSON.stringify(val))
    console.log(to);
    if(!isExist && val.name !== "redirect"  && val.name !== "404"){
        store.commit('tagsCommit',{to})
    }
},{
    immediate:true
})
解决

watch改为computed() 计算属性

解决后代码如下:

// 当前路由name
let currentName = computed(()=>{
let isExist = tags.filter(item => item.name == route.name).length > 0 ? true : false
	addTag(route,isExist)
	return route.name
})

function addTag(val,isExist){
	let to = JSON.parse(JSON.stringify(val.matched[val.matched.length - 1]))
	console.log(to);

	if(!isExist && val.name !== "redirect"  && val.name !== "404"){
    store.commit('tagsCommit',{to})
	}
}

也可以使用watch监听useRoute().xxx可以看此篇参考文章

最后附上自己vue3 + vite2 + element-plus的一个开源仓库:

GITEE 地址

GITHUB 地址

线上地址

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值