当前位置:首页 > 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 中定义状态:

vue开发环境实现登录

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 中调用接口:

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无限菜单怎么实现

实现 Vue 无限菜单的方法 递归组件实现嵌套菜单 使用 Vue 的递归组件特性可以轻松实现无限级嵌套菜单。通过组件调用自身的方式处理嵌套数据。 <template> <ul&…

vue实现弹窗

vue实现弹窗

Vue 实现弹窗的常见方法 使用组件化方式封装弹窗 创建一个独立的弹窗组件(如 Modal.vue),通过 v-if 或 v-show 控制显示隐藏: <template> <…

vue实现https

vue实现https

Vue 中实现 HTTPS 的步骤 在 Vue 项目中实现 HTTPS 主要涉及开发环境配置和生产环境部署。以下是具体方法: 开发环境配置(Vue CLI 或 Vite) 使用 mkcert 生成…

vue tab实现

vue tab实现

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

vue实现Siri

vue实现Siri

Vue 实现 Siri 风格语音交互 实现类似 Siri 的语音交互功能需要结合语音识别、语音合成和前端交互逻辑。Vue 作为前端框架,可以很好地管理这些功能的交互状态。 语音识别集成 使用 Web…

vue导航实现

vue导航实现

Vue 导航实现方法 在 Vue 中实现导航功能通常涉及路由配置、组件设计和状态管理。以下是几种常见的实现方式: 使用 Vue Router 实现基础导航 安装 Vue Router: npm i…