当前位置:首页 > VUE

vue登录界面实现

2026-03-09 11:13:16VUE

Vue 登录界面实现步骤

环境准备 确保已安装 Node.js 和 Vue CLI。通过以下命令创建 Vue 项目:

vue create login-demo

安装依赖 根据需要安装 UI 库(如 Element UI)和路由管理:

npm install element-ui vue-router axios

项目结构

src/
├── components/
│   └── Login.vue
├── router/
│   └── index.js
├── App.vue
└── main.js

登录组件实现

Login.vue 模板部分

<template>
  <div class="login-container">
    <el-form :model="loginForm" :rules="rules" ref="loginForm">
      <el-form-item prop="username">
        <el-input v-model="loginForm.username" placeholder="用户名"></el-input>
      </el-form-item>
      <el-form-item prop="password">
        <el-input v-model="loginForm.password" type="password" placeholder="密码"></el-input>
      </el-form-item>
      <el-button type="primary" @click="submitForm">登录</el-button>
    </el-form>
  </div>
</template>

Login.vue 脚本部分

vue登录界面实现

<script>
export default {
  data() {
    return {
      loginForm: {
        username: '',
        password: ''
      },
      rules: {
        username: [
          { required: true, message: '请输入用户名', trigger: 'blur' }
        ],
        password: [
          { required: true, message: '请输入密码', trigger: 'blur' }
        ]
      }
    }
  },
  methods: {
    submitForm() {
      this.$refs.loginForm.validate(valid => {
        if (valid) {
          // 调用API接口
          axios.post('/api/login', this.loginForm)
            .then(response => {
              localStorage.setItem('token', response.data.token)
              this.$router.push('/dashboard')
            })
            .catch(error => {
              console.error(error)
            })
        }
      })
    }
  }
}
</script>

路由配置

router/index.js

import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/components/Login'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/login',
      name: 'Login',
      component: Login
    }
  ]
})

样式优化

Login.vue 样式部分

<style scoped>
.login-container {
  width: 300px;
  margin: 100px auto;
  padding: 20px;
  border: 1px solid #ddd;
  border-radius: 4px;
}
</style>

全局配置

main.js

vue登录界面实现

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

表单验证增强

可扩展验证规则:

rules: {
  password: [
    { min: 6, max: 20, message: '长度在6到20个字符', trigger: 'blur' }
  ]
}

API请求封装

建议创建单独的api.js文件:

import axios from 'axios'

export const login = data => {
  return axios.post('/api/login', data)
}

响应拦截处理

在main.js中添加:

axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      router.push('/login')
    }
    return Promise.reject(error)
  }
)

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

相关文章

vue评分实现

vue评分实现

Vue 评分组件实现方法 使用第三方库(如 Element UI) 安装 Element UI: npm install element-ui 引入并注册组件: import Vue from '…

vue实现曲线

vue实现曲线

Vue 实现曲线的方法 在 Vue 中实现曲线可以通过多种方式,包括使用 SVG、Canvas 或第三方库如 D3.js、ECharts 等。以下是几种常见的方法: 使用 SVG 绘制曲线 SVG…

实现vue cli

实现vue cli

安装 Vue CLI 确保系统中已安装 Node.js(版本建议 12.x 或更高)。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 安装完成后验证版本:…

vue工序实现

vue工序实现

Vue 工序实现方法 在Vue中实现工序(或流程)功能,通常涉及状态管理、组件通信和动态渲染。以下是几种常见方法: 使用动态组件 通过Vue的<component :is="currentCo…

vue实现复制

vue实现复制

Vue 实现复制功能 在 Vue 中实现复制功能可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 Clipboard API Clipboard API 是现代浏览器提供的一种原生 AP…

vue简单实现

vue简单实现

Vue 简单实现示例 以下是一个使用 Vue.js 创建简单应用的示例,涵盖基本功能如数据绑定、事件处理和组件化。 基础 HTML 结构 <!DOCTYPE html> <ht…