当前位置:首页 > VUE

vue开发环境实现登录

2026-02-23 15:33:29VUE

安装 Vue 开发环境

确保已安装 Node.js(建议版本 16+)和 npm/yarn。通过以下命令创建 Vue 项目:

npm create vue@latest my-vue-login
cd my-vue-login
npm install

配置路由和登录页面

安装 Vue Router 并配置路由:

npm install vue-router

src/router/index.js 中定义路由:

import { createRouter, createWebHistory } from 'vue-router'
import Login from '../views/Login.vue'

const routes = [
  { path: '/login', component: Login }
]
const router = createRouter({
  history: createWebHistory(),
  routes
})
export default router

创建登录组件

src/views/Login.vue 中实现登录表单:

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

<script setup>
import { ref } from 'vue'
import { useRouter } from 'vue-router'

const username = ref('')
const password = ref('')
const router = useRouter()

const handleLogin = () => {
  if (username.value && password.value) {
    localStorage.setItem('isAuthenticated', 'true')
    router.push('/')
  }
}
</script>

状态管理与权限验证

使用 Pinia 或 Vuex 管理登录状态(以 Pinia 为例):

npm install pinia

src/stores/auth.js 中定义状态:

import { defineStore } from 'pinia'
export const useAuthStore = defineStore('auth', {
  state: () => ({
    isAuthenticated: localStorage.getItem('isAuthenticated') === 'true'
  }),
  actions: {
    login() {
      this.isAuthenticated = true
    }
  }
})

路由守卫配置

修改 src/router/index.js 添加全局守卫:

router.beforeEach((to, from, next) => {
  const isAuthenticated = localStorage.getItem('isAuthenticated') === 'true'
  if (to.path !== '/login' && !isAuthenticated) {
    next('/login')
  } else {
    next()
  }
})

后端接口对接(示例)

使用 Axios 发送登录请求:

npm install axios

Login.vue 中调用接口:

import axios from 'axios'
const handleLogin = async () => {
  try {
    const response = await axios.post('/api/login', {
      username: username.value,
      password: password.value
    })
    if (response.data.success) {
      localStorage.setItem('token', response.data.token)
      router.push('/')
    }
  } catch (error) {
    console.error('登录失败', error)
  }
}

环境变量配置

在项目根目录创建 .env 文件:

VITE_API_BASE_URL=http://your-api-url.com

通过 import.meta.env.VITE_API_BASE_URL 获取变量。

样式与优化

可引入 UI 库(如 Element Plus)优化表单样式:

npm install element-plus

main.js 中全局引入:

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
app.use(ElementPlus)

vue开发环境实现登录

标签: 环境vue
分享给朋友:

相关文章

vue实现多选div

vue实现多选div

实现多选 DIV 的基本思路 在 Vue 中实现多选 DIV 功能,可以通过以下方法实现。主要思路是利用 v-model 绑定选中状态,结合 CSS 类名动态切换样式。 数据准备与模板结构 定义一个…

vue datepicker 实现

vue datepicker 实现

实现 Vue Datepicker 的基本方法 在 Vue 项目中实现日期选择功能,可以使用第三方库如 vue-datepicker 或 v-calendar。以下是两种常见实现方式: 安装 vue…

vue实现过程

vue实现过程

Vue 的实现过程 Vue 的实现过程可以分为多个核心模块,包括响应式系统、虚拟 DOM、模板编译等。以下是 Vue 的主要实现过程分析。 响应式系统 Vue 的响应式系统基于 Object.de…

vue实现 toast

vue实现 toast

Vue 实现 Toast 组件 在 Vue 中实现 Toast 组件可以通过多种方式完成,以下是几种常见的方法: 使用全局组件和事件总线 创建一个全局的 Toast 组件,并通过事件总线或 Vue…

vue tab实现

vue tab实现

Vue Tab 实现方法 使用动态组件实现 Tab 在 Vue 中可以通过动态组件 <component :is="currentTab"> 结合 v-for 和 v-bind 实现 Ta…

vue 实现全屏

vue 实现全屏

Vue 实现全屏功能 在 Vue 中实现全屏功能可以通过浏览器提供的 Fullscreen API 完成。以下是一个完整的实现方案: 安装依赖(可选) 如果需要跨浏览器兼容性更好,可以安装 scr…