vue 获取请求url_如何在加载/显示页面之前使用Vue(路由器)获取GET请求变量

本文介绍如何在Vue应用中,通过路由参数和beforeRouteEnter钩子获取GET变量,以便根据参数调整登录界面模式。作者分享了遇到的问题及解决方法,涉及URL参数解析和Vue生命周期钩子的使用。
摘要由CSDN通过智能技术生成

加载登录页面时-我想检查是否设置了GET变量,并在我的Vue应用程序中获取它们(这样我就可以更改显示的模式)。

我的代码如下:

let routes = [

{

path: '/login',

component: Login

},

{

path: '/login/:user/:token',

component: Login,

// props: true

props: ['user', 'token']

},

...

];

...

...

...

export default {

props: [ 'user', 'token' ],

data() {

return {

// Change to yours for testing, empty these before production release

user: '',

pass: '',

getData: null

};

},

beforeRouteEnter (to, from, next) {

getPost(to.params.id, (err, post) => {

next(vm => vm.setGetData(err, post))

})

},

// When route changes and this component is already rendered,

// the logic will be slightly different.

beforeRouteUpdate (to, from, next) {

this.getData = null

getPost(to.params.id, (err, post) => {

this.setGetData(err, post)

next()

})

},

methods: {

setGetData (err, post) {

if (err) {

this.error = err.toString()

} else {

this.getData = post

}

}

}

}

getPost is not defined

). 我对Vue/VueRouter(我使用的是vanilla js或php)还不太熟悉,我的问题可能看起来很基本,但说真的,还没有找到任何能代表完整解释的获取get数据示例的东西。

如何获取GET变量,

之前

我的网址看起来对吗?

https://localhost:3000/login?user=potato&token=666

还是应该这样?

https://localhost:3000/login/potato/666

手动处理时

window.location.href

正如建议打破我的代码:

beforeRouteEnter(to, from, next) {

console.log(window.location.href);

if (this.getGetVariables(window.location.href)){

console.log('has token: ' + this.token );

}

next()

},

methods: {

// URL Variables:

getGetVariables: function(urlString) {

var url = new URL(urlString);

this.token = url.searchParams.get('token');

console.log(this.token);

if (!this.token) return false;

this.user = url.searchParams.get('user');

console.log(this.user);

}

类型错误:无法读取未定义的属性“getGetVariables”

似乎在它到达之前不会设置变量

create()

(我想)。那么我应该在哪里保存URL变量呢?

我试着改变

beforeRouteEnter

姓名

beforeRouteUpdate

在那个函数中,它不再正确地获取URL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值