Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
hotthink opened this issue Aug 3, 2019 · 5 comments

Comments

@hotthink
Copy link

hotthink commented Aug 3, 2019

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

@hotthink
Copy link
Author

hotthink commented Aug 5, 2019

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

@lin-xin
Copy link
Owner

lin-xin commented Aug 20, 2019

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

@mh363abc
Copy link

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

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

@yangyxd
Copy link

yangyxd commented Dec 12, 2019

修改 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
        }
    },

@zhouyoutang
Copy link

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants