根据你提供的信息,我猜测你是在使用 Vue.js 开发单页面应用,通过'this.$router.push'实现路由跳转后,想要在目标页面中获取一些数据。如果我的猜测是正确的,那么我可以给出以下的解答。

在 Vue.js 中,路由跳转一般是通过<router-link>或者'this.$router.push'实现的。无论使用哪一种方式,最终都是通过 Vue Router 来进行路由管理的。

在目标页面中获取数据的方式,可以分为两种情况:

  1. 目标页面是静态路由,不需要传递参数

如果目标页面是静态路由,即不需要传递参数的情况下,我们可以通过 Vue Router 提供的钩子函数'beforeRouteEnter'来获取数据。

在目标页面的组件中,可以添加以下代码:

export default {
  data() {
    return {
      data: null
    }
  },
  beforeRouteEnter(to, from, next) {
    // 在进入路由前调用,可以在这里获取数据
    fetchData().then(data => {
      next(vm => {
        // 将获取到的数据赋值给组件实例的data属性
        vm.data = data
      })
    })
  }
}

在上面的代码中,'beforeRouteEnter'函数会在进入路由前被调用。我们可以在这里获取数据,并将数据赋值给组件实例的'data'属性。需要注意的是,在钩子函数中获取的数据是异步的,因此需要在'next'函数中调用回调函数,将获取到的数据赋值给组件实例。

  1. 目标页面是动态路由,需要传递参数

如果目标页面是动态路由,即需要传递参数的情况下,我们可以通过 Vue Router 提供的'$route'对象来获取参数。

在目标页面的组件中,可以添加以下代码:

export default {
  data() {
    return {
      id: null
    }
  },
  created() {
    // 通过$route.params获取参数
    this.id = this.$route.params.id
  }
}

在上面的代码中,我们可以通过'$route.params'获取路由参数,并将参数赋值给组件实例的'id'属性。需要注意的是,获取路由参数需要在组件的'created'钩子函数中进行,因为在'created'钩子函数中,组件实例已经创建完成,可以访问到'$route'对象了。

Vue.js 路由跳转后获取数据:this.$router.push 后数据获取指南

原文地址: https://www.cveoy.top/t/topic/muWy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录