vue cli实现项目登陆页面流程详解

yizhihongxing

下面是“Vue CLI实现项目登录页面流程详解”的完整攻略:

准备工作

首先,安装 Vue CLI,可以通过 npm 命令在终端进行安装:

npm install -g @vue/cli

安装完成后,通过 Vue CLI 创建一个新项目:

vue create my-project

然后,进入项目目录并启动项目:

cd my-project
npm run serve

在本地服务器上,就可以看到 Vue 的欢迎界面了。

编写登录页面组件

接下来,我们需要创建一个登录页面组件。在项目文件夹里创建一个名为 Login.vue 的文件,并添加以下代码:

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

<script>
export default {
  data() {
    return {
      username: "",
      password: "",
    };
  },
  methods: {
    login() {
      // 登录逻辑代码
    },
  },
};
</script>

<style>
.login {
  background-color: #f0f0f0;
  padding: 20px;
  width: 300px;
  margin: 0 auto;
  border-radius: 5px;
  box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
form {
  display: flex;
  flex-direction: column;
  align-items: center;
}
form div {
  margin-bottom: 10px;
}
label {
  display: inline-block;
  width: 80px;
}
input {
  border: 1px solid #ccc;
  padding: 5px;
  border-radius: 3px;
  outline: none;
  width: 200px;
}
button {
  margin-top: 10px;
  background-color: #007bff;
  color: #fff;
  border: none;
  border-radius: 3px;
  padding: 5px 10px;
  cursor: pointer;
}
</style>

该组件包含一个登录表单,其中包括用户名和密码输入框以及“登录”按钮。此时还没有完整的登录逻辑,后面会进行实现。

创建全局路由和路由守卫

接下来,我们需要通过 Vue Router 创建全局路由,在 src 目录下的 router.js 文件中添加以下代码:

import Vue from "vue";
import Router from "vue-router";
import Login from "@/views/Login";

Vue.use(Router);

const router = new Router({
  routes: [
    {
      path: "/login",
      name: "login",
      component: Login,
    },
  ],
});

router.beforeEach((to, from, next) => {
  // 判断用户是否已经登录
  if (to.name !== "login" && !localStorage.getItem("token")) {
    next("/login");
  } else {
    next();
  }
});

export default router;

该路由的核心在于路由守卫(beforeEach)函数。它会在用户进入每个路由之前执行一段代码,用以判断用户是否登录。如果没有登录,则会跳转到登录页;如果已经登录,则会直接进入到对应的页面。

实现登录逻辑

实现登录逻辑的关键在于如何存储用户登录状态。这里我们通过使用 localStorage 来实现。在 Login.vue 中的 login 方法中添加以下代码:

login() {
  // 发起登录请求
  const username = this.username;
  const password = this.password;
  axios
    .post("/api/login", { username, password })
    .then((res) => {
      // 登录成功,保存 token 到本地存储
      localStorage.setItem("token", res.data.token);

      // 跳转到首页
      this.$router.push("/");
    })
    .catch((err) => {
      alert("用户名或密码错误");
    });
}

在用户成功登录后,我们通过调用 localStorage.setItem 方法将 token 存储到本地存储中。token 在后面的路由守卫中进行判断,以判断用户是否登录。

示例说明

我们可以通过 Vue CLI 创建一个空的项目,然后按照上述步骤添加以下文件:

  • src/views/Login.vue
  • src/router.js

完成以上工作后,运行项目即可看到登录页面。这里我们提供一个示例项目(使用的是 Element UI):

以上就是 Vue CLI 实现项目登录页面流程详解的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue cli实现项目登陆页面流程详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 五分钟带你快速了解vue的常用实例方法

    五分钟带你快速了解Vue的常用实例方法 什么是Vue实例方法 Vue实例是Vue应用中最基本的组成部分,实例是通过创建Vue实例对象来实现的。Vue实例方法是在Vue实例对象中定义的方法,这些方法可以让我们方便地操作Vue实例对象。 Vue实例的常用实例方法 1. $set $set方法是用来在Vue实例中设置一个新的属性或修改一个已有的属性的值。这个方法可…

    Vue 2023年5月28日
    00
  • vue单页面改造多页面应用的全过程记录

    下面是“Vue单页面改造多页面应用的全过程记录”的完整攻略及示例说明: 1. 目标 我们的目标是将一个已经存在的基于 Vue 单页面应用的项目改造为具有多页面应用特性的项目。在这种情况下,每个页面都已经有了自己的入口文件及对应的路由配置。 2. 改造思路 我们需要将原来的单页面应用改造为多页面应用,主要思路如下: 多入口:对于每一个页面,我们需要提供一个独立…

    Vue 2023年5月28日
    00
  • 详解Nginx 13: Permission denied 解决方案

    下面是详解Nginx 13: Permission denied 解决方案的完整攻略。 问题描述 在使用Nginx过程中,有时候我们会遇到这样的报错:Permission denied,一般来说,这种错误出现的原因有很多种,例如: Nginx服务器没有足够的权限来操作相关文件或目录。 Nginx用户没有被设置为文件或目录的所有者或组。 SELinux等安全策…

    Vue 2023年5月28日
    00
  • vue中使用vue-pdf的方法详解

    关于”vue中使用vue-pdf的方法详解”,以下是详细步骤: 1.安装 vue-pdf 在vue项目中,可以使用npm指令进行安装,在命令行中输入: npm install vue-pdf –save 2.配置 vue-pdf 在Vue项目中,需要在 main.js 中引入 vue-pdf 并进行全局注册: import VuePdf from ‘vue…

    Vue 2023年5月28日
    00
  • ES6中常见基本知识点的基本使用实例汇总

    ES6中常见基本知识点的基本使用实例汇总,我来给大家讲解一下。 1. let和const let和const是ES6新增的关键字,用来声明变量和常量。其中let用于声明可变的变量,const用于声明不变的常量。 let count = 0; // 可变的变量 count = 1; const MAX_COUNT = 10; // 不变的常量 MAX_COUN…

    Vue 2023年5月28日
    00
  • vue计算属性computed、事件、监听器watch的使用讲解

    下面我将详细讲解“vue计算属性computed、事件、监听器watch的使用讲解”的完整攻略,让你更加深入理解vue中这三个重要的概念。 计算属性computed computed可以理解为计算属性,它可以根据已经存在的数据computed属性(即model中data中的属性)进行计算得到一个新的值,这个新的值可以使用在模板中。computed具有缓存的特…

    Vue 2023年5月28日
    00
  • Spring Boot详解各类请求和响应的处理方法

    下面我将为你详细讲解“Spring Boot详解各类请求和响应的处理方法”的完整攻略。 一、什么是Spring Boot Spring Boot是一个快速构建Spring应用程序的框架,它基于Spring框架,并通过自动配置、起步依赖和命令行界面等特性,使得开发Spring应用更加简单。 二、Spring Boot的请求和响应处理方法 1. 处理GET请求 …

    Vue 2023年5月28日
    00
  • vue源码学习之Object.defineProperty 对数组监听

    下面我来为您介绍一下“Vue源码学习之Object.defineProperty对数组监听”的攻略。 1. Object.defineProperty的基本用法 首先,我们来了解一下Object.defineProperty的基本用法及其作用。 Object.defineProperty是ES5新增的一个API,它可以用来精确添加或修改对象的属性。该方法将直…

    Vue 2023年5月29日
    00
合作推广
合作推广
分享本页
返回顶部