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)
上一篇 4天前
下一篇 4天前

相关文章

  • vue中过滤器filter的讲解

    Vue中过滤器Filter的讲解 Vue中的 Filter 可以用来格式化输出内容,例如格式化日期、货币、大小写等。 Filter 本质上就是一个方法,它接收一个输入值,经过处理后返回一个输出值。以下是 Filter 的基本使用方法和示例说明。 基本使用方法 在 Vue 组件选项中声明 filters 对象,可以包含多个自定义 Filter 函数。示例: V…

    Vue 4天前
    00
  • Vue2中使用axios的3种方法实例总结

    当使用Vue2构建前端应用时,通常需要从后端获取数据。Axios是一个流行的JavaScript库,可用于发送HTTP请求和处理响应。在Vue2中,可以使用Axios来轻松地获取数据。下面是三种方法来在Vue2中使用Axios的总结: 方法一:以Vue原型的方式调用Axios 在main.js文件中引入Axios,然后将其设置为Vue的原型属性。这样一来,在…

    Vue 3天前
    00
  • Vue实现base64编码图片间的切换功能

    要实现Vue中base64编码图片间的切换功能,需要以下步骤: 1. 生成base64编码图片 使用FileReader对象和canvas元素可以将普通图片转化成base64编码图片,具体步骤如下: // 生成base64编码图片 const file = e.target.files[0] const reader = new FileReader() r…

    Vue 2天前
    00
  • Vue实现数据导出导入实战案例

    为了实现Vue的数据导入导出功能,我们需要遵循以下步骤: 第一步:安装依赖 使用Vue.js来实现数据导入导出功能需要安装以下依赖项: FileSaver.js:用于在浏览器下载文件; XLSX.js:Excel文件的解析和生成库。 可以通过npm安装这些依赖项: npm install file-saver xlsx –save 第二步:导入需要Expo…

    Vue 4天前
    00
  • 基于vue实现多引擎搜索及关键字提示

    实现基于Vue的多引擎搜索及关键字提示主要包括以下步骤: 构建基础页面结构 在HTML文件中,构造基础的页面结构,包括搜索框和搜索按钮等必要的组件。同时,引入Vue.js库和相关依赖。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> …

    Vue 4天前
    00
  • 关于vue src路径动态拼接的小知识

    首先我们需要了解一下Vue中app的文件结构。在默认情况下,我们会在src目录下创建一个main.js的文件作为vue应用的入口文件。 在Vue中,我们可以使用相对路径引入我们的组件等资源,如: import App from "./components/App.vue"; 但是,由于在不同的环境下,我们的文件路径可能会发生变化,所以我们…

    Vue 4天前
    00
  • Vue3之路由跳转与参数获取方式

    下面是关于Vue3路由跳转与参数获取的完整攻略。 1. 安装Vue Router 在开始使用Vue3路由时,需要先安装Vue Router。可以通过npm安装,命令如下: npm install vue-router@4.0.0-beta.8 安装完成后,在main.js中引入Vue Router并使用。 import { createRouter, cre…

    Vue 4天前
    00
  • vue+jsplumb实现工作流程图的项目实践

    下面我将详细讲解一下“vue+jsplumb实现工作流程图的项目实践”的攻略步骤。 步骤一:安装vue及相关插件 第一步是安装Vue.js,可以使用npm或yarn进行安装。同时,还需要安装Vue Router和Vue Resource插件来支持我们实现跨组件通信和网络请求。 npm install vue vue-router vue-resource -…

    Vue 3天前
    00
  • 详解如何理解vue的key属性

    以下是详解如何理解vue的key属性的完整攻略: 1. 什么是Vue的key属性? Vue中的key属性是在使用v-for指令时用来提高性能和防止数据混乱的重要属性。key属性可以为每个v-for循环中的子元素设定一个唯一的标识符,Vue在渲染虚拟DOM节点时会根据key属性来判断哪些节点需要被更新,从而减少页面重新渲染的量,提高页面性能。 2. 如何理解V…

    Vue 4天前
    00
  • Vue 进阶之路(三)

    下面我来为您详细讲解一下“Vue 进阶之路(三)”的完整攻略。 标题 “Vue 进阶之路(三)”的完整攻略主要包含以下内容: 1. Vue的混入 混入是Vue中的一个非常有用的特性,它可以让我们把一个对象的属性、方法等合并到一个Vue组件中。这样做的好处是可以有效地避免多个组件之间的代码冗余。 下面代码展示了如何在Vue中使用混入: const myMixi…

    Vue 4天前
    00