vue路由跳转页面不刷新数据

  • 前言:vue-router的切换不同于传统的页面的切换。路由之间的切换,其实就是组件之间的切换,不是真正的页面切换。这也会导致一个问题,就是引用相同组件的时候,由于参数不一样不会覆盖原打开的页面而会打开一个重复的页面,只是页面的数据不一样,再点开旧的页面时(B.1)发现数据还是新页面(B.2)的数据,点开旧页面(B.1)时不会调用created(),mounted()函数,会导致获取数据的函数无法调用从而该组件无法更新。

A 页面中跳转的方法

        this.$router.push({
          path: "/processInfo_management",
          query: { process_code: process_code }
        });

解决办法:
在watch中监听路由变化,其中$route.query.process_code,process_code代表页面间传递的参数,fetchData代表调用的方法

B页面中数据刷新的方法

  watch: {
    "$route.query.process_code": "fetchData"
  },

  methods: {
    fetchData() {
      // 解决路由切换,页面不更新的实用方法
      if (this.$route.path == "/processInfo_management") {
          // 请求数据的方法
      }
    },
}

你可能感兴趣的:(vue路由跳转页面不刷新数据)