当前位置:首页 > VUE

vue实现点击登录

2026-01-19 18:45:34VUE

Vue 实现点击登录功能

创建登录表单组件

在 Vue 项目中创建一个登录表单组件,通常命名为 LoginForm.vue。该组件包含用户名和密码输入框以及登录按钮。

<template>
  <div class="login-form">
    <input v-model="username" type="text" placeholder="用户名" />
    <input v-model="password" type="password" placeholder="密码" />
    <button @click="handleLogin">登录</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      username: '',
      password: ''
    }
  },
  methods: {
    handleLogin() {
      // 登录逻辑
    }
  }
}
</script>

实现登录逻辑

handleLogin 方法中实现登录逻辑,通常包括验证输入、发送登录请求和处理响应。

vue实现点击登录

methods: {
  async handleLogin() {
    if (!this.username || !this.password) {
      alert('请输入用户名和密码');
      return;
    }

    try {
      const response = await axios.post('/api/login', {
        username: this.username,
        password: this.password
      });

      if (response.data.success) {
        localStorage.setItem('token', response.data.token);
        this.$router.push('/dashboard');
      } else {
        alert('登录失败: ' + response.data.message);
      }
    } catch (error) {
      alert('登录请求失败: ' + error.message);
    }
  }
}

添加路由跳转

在 Vue Router 中配置登录后的跳转路由。确保用户登录成功后能够跳转到指定页面。

vue实现点击登录

const router = new VueRouter({
  routes: [
    { path: '/login', component: LoginForm },
    { path: '/dashboard', component: Dashboard, meta: { requiresAuth: true } }
  ]
});

添加导航守卫

使用全局前置守卫检查用户是否已登录,未登录则重定向到登录页面。

router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('token');
  if (to.matched.some(record => record.meta.requiresAuth) && !isAuthenticated) {
    next('/login');
  } else {
    next();
  }
});

样式优化

为登录表单添加基本样式,提升用户体验。

.login-form {
  display: flex;
  flex-direction: column;
  max-width: 300px;
  margin: 0 auto;
}

.login-form input {
  margin-bottom: 10px;
  padding: 8px;
}

.login-form button {
  padding: 10px;
  background-color: #42b983;
  color: white;
  border: none;
  cursor: pointer;
}

测试登录功能

运行项目并测试登录功能是否正常工作。确保输入正确的用户名和密码后能够成功跳转到目标页面,错误的输入则显示相应提示。

标签: vue
分享给朋友:

相关文章

vue实现继承语法糖

vue实现继承语法糖

在Vue中实现继承可以通过多种方式模拟类继承的效果,以下是常见的几种方法: 使用mixins实现逻辑复用 通过Vue的mixins机制共享组件选项,达到类似继承的效果: const Bas…

vue实现发送值接受值

vue实现发送值接受值

Vue 实现父子组件传值 父组件向子组件传值(props) 父组件通过 v-bind 或简写 : 向子组件传递数据。子组件通过 props 接收数据。 父组件代码: <template&g…

vue实现主题

vue实现主题

Vue 实现主题的方法 使用 CSS 变量动态切换主题 定义全局 CSS 变量,通过修改这些变量实现主题切换。在 Vue 的根组件或全局样式中定义变量: :root { --primary-co…

vue实现路由

vue实现路由

Vue 路由的实现方法 Vue 路由可以通过 Vue Router 库来实现,Vue Router 是 Vue.js 官方的路由管理器,用于构建单页面应用(SPA)。 安装 Vue Router 通…

vue实现dag

vue实现dag

Vue实现DAG(有向无环图) 在Vue中实现DAG(Directed Acyclic Graph,有向无环图)通常涉及数据结构的建模、可视化渲染以及交互逻辑处理。以下是关键实现步骤和示例代码: 数…

vue实现追加

vue实现追加

追加数据到数组或列表 在Vue中追加数据到数组或列表,可以通过push方法或concat方法实现。以下是几种常见的实现方式: 方法一:使用push方法 this.items.push(newIte…