vue-router组件中beforeRouteEnter钩子函数如何给组件实例添加data参数?

{
  beforeRouteEnter (to, from, next) {
    serv.test()
      .then(res => {
        next(vm => {
          // 这里如何给组件实例的data添加参数?
          vm.listData = res.data.results
        })
      })
      .catch(err => {
        console.log(err)
      })
  },
  mounted () {
    console.log(this.listData) // undefind
  }
}

在路由进入前获取数据,如何给组件的data添加数据?
我那样写的无法在mounted生命周期中获取到,也无法在template中使用

阅读 7.7k
3 个回答

你首先得把你那个文件的实例import到router的这个文件吧,然后使用vm.set(data,key,value)来添加数据

import App from './app.vue'
App.set(data,key,value)

可以打印下vm里面的内容就知道怎样设置了

beforeRouteEnter(to,from,next){
        next((vm)=>{
            vm._data.batchModalShowFlag = true;
        });
    },
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题