关于vue3 刷新的问题,如何解决?

一个主界面有card组件 ,点击会带着自身的id去info界面,info界面也有card组件,点击却不会跳转,想问下怎么刷新或者重新渲染下界面,是用vue3 setup 组件式开发的,点击 路由会变 http://127.0.0.1:5173/info?tid=202298201

最基本的window.reload()
如果你的info里面的card所带的id就是本页面的id,那么你点击的时候,url路径并不会发生变化,自然不会跳转。

大佬,这个跟那个问题差不多, dat能打印成功,且第一次请求渲染成功,之后的就请求成功但是渲染不出来,麻烦看一下。

  • 这篇博客: Vue实现项目中的商品列表,商品详情等功能中的 3.1 根据传递过来的商品id,查询商品信息 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在商品列表页面中传递过来的商品的编号,在商品详细中可以通过

    this.$route.params.id来进行接收。接收到id后,通过axios向服务端传递数据。

    export default{
      data(){
        return{
           productInfo:{},
        }
      },
      created(){
         this.$axios.get(`getProductInfo/${this.$route.params.id}`).then(res=>{
                this.productInfo=res.data.message[0];
    
            }).catch(err=>{
                console.log('获取商品信息失败',err)
            })
      }
    }
    
  • 以下回答由chatgpt基于相关博客总结生成:

    针对优化后的问题,可以考虑以下解决方案:

    1. 确认是否正确设置了路由,包括在路由文件中定义路径和组件的映射关系,以及在组件中正确调用 $router.push() 方法进行导航。可以在路由文件和组件中打印相关信息进行调试。
    2. 如果路由已经正确设置,但是点击 card 组件无法进行导航,可能是因为该组件没有设置正确的点击事件。可以在组件模板中给 card 元素添加 @click 指令,并且在对应的处理函数中调用 $router.push() 方法进行导航。
    3. 如果导航仍然无法实现,可以尝试在导航前手动调用 $router.go(0) 方法进行页面刷新或重新渲染。这样可以确保路由信息没有被缓存而导致无法正确跳转。需要注意的是,此方法会重新加载页面,可能会导致一些性能问题,需要根据具体情况选择使用。
    4. 如果以上方法均没有解决问题,可以考虑使用 Vue Devtools 进行调试,查看组件和路由信息的状态,以及事件的触发情况,进一步分析问题的原因。