vue2.0 在mounted时不能获取到$route.query的值?

mounted() {
    //直接打印不到
    this.setUserInfo();
    
    //加一定的延时就可以打印出来
    let _this = this;
    setTimeout(function() {
        _this.setUserInfo();
    }, 100)
    
},

methods: {
    //将url传递过来的参数存入LocalStorage
    setUserInfo: function() {
        let userInfo = this.$route.query;
        console.log(userInfo)
    }
},

如上,直接在mounted时打印不到this.$route.query的值。加一个延时就好了。是什么原因呢?

阅读 8.2k
4 个回答

这个你可以看看vue的生命周期。

mounted    模版编译、挂载之后(不保证组件已在document中)

所以可能出现你的情况,组件及其上的方法没在dom中,加个延时,渲染好了,然后你的打印就有东西

那就beforeMount

写到 created() 里?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题