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

下面是“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实现导出excel表格功能

    下面是Vue实现导出Excel表格的完整攻略: 准备工作 引入xlsx库,可以通过以下命令安装 npm install xlsx –save。 在Vue项目中新建一个组件用来放置导出Excel的按钮。 示例代码 <template> <div> <button @click="generateExcel()&quot…

    Vue 2023年5月27日
    00
  • 解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题

    解决vue-quill-editor上传内容中图片base64字符串过长的问题,有以下几种方式: 1. 使用quill-image-extend-module quill-image-extend-module是一个扩展模块,它可以让quill-editor支持图片上传。它会将上传的图片文件转换成base64格式,然后插入到编辑器内容中,这会导致编辑器内容变…

    Vue 2023年5月27日
    00
  • vue之webpack -v报错解决方案总结

    下面是“vue之webpack -v报错解决方案总结”的完整攻略。 问题描述 在使用Vue CLI创建项目或运行已有项目时,可能会出现以下错误提示: sh: webpack: command not found 这个错误提示表示无法找到webpack命令,这将导致无法完成项目的构建和打包。 解决方案 方案一:全局安装webpack 可以尝试全局安装最新版本的…

    Vue 2023年5月28日
    00
  • Vue事件修饰符使用详细介绍

    下面是Vue事件修饰符的详细介绍。 一、Vue事件修饰符简介 在Vue中,事件修饰符是用来处理DOM事件的修饰符的一种方式。通过使用事件修饰符,我们可以在触发DOM事件时,修改事件的行为或者触发条件,达到更加灵活的控制页面交互效果和事件处理。 Vue中提供了多种事件修饰符,包括.stop、.prevent、.capture、.self、.once、.pass…

    Vue 2023年5月28日
    00
  • 详解Java中wait和sleep的区别

    下面我将为大家详细讲解”详解Java中wait和sleep的区别”的完整攻略。 什么是wait和sleep? 在Java中,wait和sleep都是线程等待的方法。它们的作用都是让程序进入等待状态,但是两者还是有一些区别的。 wait和sleep的区别 wait是Object类的方法,而sleep是Thread类的方法。 在调用wait的时候,线程会释放它所…

    Vue 2023年5月28日
    00
  • vue实现表单验证功能

    下面是关于“Vue实现表单验证功能”的完整攻略: 一、准备工作 在开始实现表单验证之前,我们需要先引入Vue和 Vue-Resource两个依赖库。在html文件中引入它们的CDN链接 <!– Vue.js –> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js…

    Vue 2023年5月27日
    00
  • vue中img src 动态加载本地json的图片路径写法

    在Vue中,我们使用img标签来展示图片,其中src属性用于指定图片的路径。如果需要动态加载本地json中的图片,我们可以使用相对路径来指定图片的位置。 具体操作步骤如下: 创建一个包含图片路径的json文件。比如说在项目根目录下新建一个名为“images.json”的文件,其内容为: { "imgPath": "./asset…

    Vue 2023年5月28日
    00
  • vue响应式Object代理对象的修改和删除属性

    概述: Vue响应式(Reactivity)模块用于实现数据响应式更新,是Vue框架的核心功能之一。其中,Vue的响应式模式通过Object.defineProperty来拦截数据访问,从而实现响应式数据的更新,而访问代理则是这一过程的重要组成部分。 Vue响应式 Object代理对象的修改和删除属性涉及以下三个方面: 对象数据监听器初始化过程; 响应式对象…

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