1. 如果在create中进行数据获取,那么在多次打开页面的时候,之后打开的页面数据都是和第一页相同的,这是因为data是在$vm实例创建之前就会进行赋值,而在第一次打开页面时,就已经创建了实例并对data进行赋值了,之后每次打开都不会再创建;

  2. 使用activated(这是和keep-alive协同使用的一个属性,如果没有设置keep-alive ,activated是不存在的),并在activated中进行Id获取和数据方法调用,可每次获得新的数据。

activated和created的区别:created是创建vm实例时执行,而activated更像是每次新打开这个页面的时候执行

  1. 使用watch监听,监听路由!当监听到路由转到详情页时,就调用数据方法。以下代码GetData()方法中获取Id并获取数据。监听路由和设置activated是互补的操作,新打开页面时,路由不会被监听,这时候利用activated,但是在重复打开本页面时,activated不会被执行,这时候利用路由监听。
watch:{
    "$route"(val,oldval){
                if(val.meta.title=='详情页名字'){
                       this.GetData()
                 }
         }
}

我的博客主页 :https://qingmuzhang.gitee.io/

Logo

前往低代码交流专区

更多推荐