如下所示:
login() { if(this.email.length > 0 && this.password.length >0) { this.$http.post('/api/login', { user: this.email, password: this.password }) .then(res => { let userPwd = res.data if(this.password == userPwd) { this.$router.push("/") } else { alert("错误,请重新输入!") } }) .catch(err => { console.log(err) }) } else { alert("输入错误!") } }
this.$router.push(“/”)不是跳转到主页,而是变成这样:http://127.0.0.1:8080/login?email=yejia%40qq.com&password=123456,请问哪里错啦?
解决方案1:
有没有可能是已经跳转了,但是主页判断成了没有登录,然后又跳回来了。
解决方案2:
你这里的 this指向已经不是 vue 的对象啦,可以这么改
login() { const self = this; if(this.email.length > 0 && this.password.length >0) { this.$http.post('/api/login', { user: this.email, password: this.password }) .then(res => { let userPwd = res.data if(this.password == userPwd) { self.$router.push("/") } else { alert("错误,请重新输入!") } }) .catch(err => { console.log(err) }) } else { alert("输入错误!") } }
以上这篇解决vue.js this.$router.push无效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持北冥有鱼。
您可能感兴趣的文章:
- JavaScript箭头函数中的this详解
- vue项目中在外部js文件中直接调用vue实例的方法比如说this
- 详解JS中的this、apply、call、bind(经典面试题)
- 浅析JavaScript中var that=this
- JS中改变this指向的方法(call和apply、bind)
- 关于js里的this关键字的理解
- 简单分析js中的this的原理