【发布时间】:2021-01-22 14:58:14
【问题描述】:
我有一个登录按钮,当登录成功时,它会导航到路由dashboard/。该按钮在单击时起作用,但是当我按下回车键时,它会复制路线。
所以流程是这样的:
- 登陆登录页面
- 按“Enter”键
- 进入“仪表板”
- 点击浏览器后退按钮
- 按“Enter”键
此时地址变为http://localhost:3000/dashboard/dashboard/ 而不仅仅是http://localhost:3000/dashboard/。更奇怪的是,如果我遵循与上述相同的流程,但我点击了按钮。无论我按多少次后退按钮,它都会按预期工作。剥离的组件如下所示。
<template >
<v-container>
<v-row justify="center">
<v-col cols='6' align="center">
<v-form>
<h1 class="pb-4">Login</h1>
<v-text-field
label="Email"
placeholder="someone@example.com"
>
</v-text-field>
<v-text-field
label="Password"
type="password"
>
</v-text-field>
<v-btn dark block @click="login"> Login </v-btn>
<br />
<a href="">Forgot your password?</a>
</v-form>
</v-col>
</v-row>
</v-container>
</template>
<script>
export default {
data() {
return {
showPassword: false,
};
},
mounted(){
document.addEventListener("keyup", (event) => {
if (event.key ==='Enter') {
this.login();
}
});
},
methods: {
async login() {
try {
//throw 'Login is not setup'
//do login logic
this.$router.push({ path: "dashboard/" });
} catch (error) {
console.error(error);
}
},
},
};
</script>
<style>
</style>
【问题讨论】:
标签: vue.js nuxt.js vuetify.js vue-router