vue-manage-system icon indicating copy to clipboard operation
vue-manage-system copied to clipboard

同一个页面,不同参数的多个标签内容会串,该如何处理

Open hotthink opened this issue 6 years ago • 5 comments

比如,有个用户列表页面,后面有一个 详情 链接 到 detail.vue, 然后后面带上 uid=xxx, 这样每个detail会打开一个标签。但是所有的标签数据会变成一样的,这个如何处理?

hotthink avatar Aug 03 '19 16:08 hotthink

已经通过路由守卫解决了这个问题,不过不了解还有没有办法指定该组件不复用,不然的话,只好每次都重加载数据

hotthink avatar Aug 05 '19 03:08 hotthink

在home.vue里有个tagsList用来存放需要复用的组件,不如不想组件复用,就过滤掉该组件即可

lin-xin avatar Aug 20 '19 07:08 lin-xin

    watch: {
      '$route' (to, from) {
         // 重新加载数据...
      }
    },

// 在详情组件内部添加观察,当网址变化时,触发。这样的方式,每次切换详情标签时,重新加载了数据

mh363abc avatar Nov 12 '19 07:11 mh363abc

修改 Home.vue , 通过给 router-view 增加key的方式,可以完美解决此问题。 将 <router-view></router-view> 改为 <router-view :key="key"></router-view>

在 script 中,将 data 改为:

data() {
        return {
            tagsList: [],
            keys: [],
            collapse: false
        };
    },

添加

computed: {
        key() {
            return this.$route.fullPath
        }
    },

yangyxd avatar Dec 12 '19 05:12 yangyxd

已经通过路由守卫解决了这个问题,不过不了解还有没有办法指定该组件不复用,不然的话,只好每次都重加载数据

如果组件不复用,在打开多个用户详细信息tab时,来回切换tab时都会重新刷新页面,这样是不是就破坏了tab的使用的意义?而且如果有些页面,在你做了一些操作后(比如一些查询页面,选择了一些查询条件),切换后再切换回来,那些操作会丢失

zhouyoutang avatar May 08 '20 07:05 zhouyoutang