vue中页面跳转白屏的解决方式,同一路由地址,参数不同跳转白屏的解决方式

路由地址的变化例如下面:

http://localhost:8080/#/category/1013001
 
-->地址相同,只有参数发生变化
 
http://localhost:8080/#/category/1013304

同一个地址携带不同的参数跳转内容并没有更新

原因:

地址的变化了,其实本路由对应的path并没有变化(还是#/category),是参数变化了。此时当前路径匹配的组件会被直接复用,这个组件在地址切换的过程中,并没有重新销毁生成,或导致页面白屏的情况出现,也就说,setup(vue3组合式API)只是执行了第一次。

解决方式:

1.强制销毁组件给router-view 添加key属性

<router-view :key="$route.fullPath"/> 

原理:https://cn.vuejs.org/api/built-in-special-attributes.html#key

2.使用watch侦听器,侦听路由参数的变化

将请求数据的逻辑代码放在侦听器中:

watch(() => route.params.id, (newVal) => {
      console.log('route.params.id变化了...', newVal)
​
    // 逻辑代码 ........
    
    }, { immediate: true })
    // immediate 侦听器的三个参数之一,作用:一进入页面就触发一次
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值