当前位置:首页 > VUE

vue登录页面实现

2026-01-17 00:21:04VUE

实现Vue登录页面的基本步骤

创建Login.vue文件作为登录组件,包含表单元素(用户名/密码输入框、提交按钮)。使用v-model双向绑定数据,通过@submit.prevent阻止默认表单提交行为。

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

数据绑定与验证

<script>部分设置响应式数据对象和验证逻辑。使用Vue的refreactive创建响应式表单对象,可结合vee-validate或自定义验证规则。

<script setup>
import { reactive } from 'vue'

const form = reactive({
  username: '',
  password: ''
})

const validate = () => {
  return form.username.length > 0 && form.password.length >= 6
}
</script>

提交逻辑与API交互

实现handleLogin方法,通过axiosfetch发送登录请求。处理成功/失败场景,保存token至localStorage或Vuex/Pinia store。

vue登录页面实现

const handleLogin = async () => {
  if (!validate()) return alert('验证失败')

  try {
    const res = await axios.post('/api/login', form)
    localStorage.setItem('token', res.data.token)
    router.push('/dashboard')
  } catch (err) {
    console.error('登录失败:', err)
  }
}

路由配置与导航守卫

router/index.js中配置登录路由,添加导航守卫实现未登录重定向。

const routes = [
  { path: '/login', component: Login },
  { path: '/dashboard', component: Dashboard, meta: { requiresAuth: true } }
]

router.beforeEach((to) => {
  if (to.meta.requiresAuth && !localStorage.getItem('token')) {
    return '/login'
  }
})

样式优化与用户体验

添加CSS样式增强视觉效果,包括输入框焦点状态、错误提示、加载状态等。使用v-ifv-show控制加载动画显示。

vue登录页面实现

.login-container {
  max-width: 400px;
  margin: 0 auto;
}
input:focus {
  border-color: #42b983;
}
.error-message {
  color: red;
}

安全增强措施

实现CSRF防护(如添加token到请求头)、密码输入错误次数限制、验证码功能等安全措施。生产环境应启用HTTPS并设置HttpOnly的cookie。

axios.interceptors.request.use(config => {
  config.headers['X-CSRF-TOKEN'] = getCSRFToken()
  return config
})

第三方登录集成

支持OAuth2.0协议集成第三方登录(如Google/GitHub)。创建社交登录按钮,跳转至授权页面后处理回调。

<button @click="socialLogin('google')">Google登录</button>

以上实现可根据具体项目需求调整扩展,建议使用Vue 3的Composition API组织代码结构。

标签: 页面vue
分享给朋友:

相关文章

eventbus vue实现

eventbus vue实现

EventBus 实现原理 EventBus 是一种发布/订阅模式,用于 Vue 组件间的通信。核心是通过一个中央事件总线管理事件监听和触发。 创建 EventBus 在 Vue 项目中创建一个独立…

vue实现cs

vue实现cs

Vue 实现 CS(Client-Side)渲染的常见方法 Vue.js 是一个用于构建用户界面的渐进式框架,默认采用客户端渲染(CSR)。以下是几种常见的实现方式: 使用 Vue CLI 创建项目…

vue实现全屏

vue实现全屏

Vue 实现全屏功能的方法 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 来实现。以下是几种常见的实现方式: 使用原生 Fullscreen API 通过调用 doc…

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <ul…

vue实现文字纠错

vue实现文字纠错

Vue实现文字纠错功能 实现文字纠错功能通常需要结合前端Vue框架和后端自然语言处理(NLP)服务。以下是几种常见的实现方法: 使用第三方API服务 注册并获取API密钥(如百度AI开放平台、腾讯云…

vue实现图片预览

vue实现图片预览

Vue 实现图片预览的方法 使用 Element UI 的 el-image 组件 Element UI 提供了 el-image 组件,支持图片预览功能。通过设置 preview-src-list…