当前位置: 首页 > news >正文

Vue2 + ElementUI + axios + VueRouter入门

之前没有pc端开发基础,工作需要使用若依框架进行了一年的前端开发.最近看到一个视频框架一步步集成,感觉颇受启发,在此记录一下学习心得。视频链接:vue2+element ui 快速入门

环境搭建和依赖安装

  1. 安装nodejs
  2. 安装Vue Cli
  3. 使用vue create project 创建vue2工程
  4. 修改C:\Users\guchu.vuerc packageManager 为 npm
  5. 使用npm install axios 安装网络请求框架
  6. npm install vue-router@3(注意:vue2 对应 vue-router@3, vue3对应vue-router@4)
  7. npm i element-ui -S 安装elementUI框架

开发过程

静态登录页面开发

1. 将elementui注入Vue

修改main.js 添加一下内容:

import ElementUi from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'; 
Vue.use(ElementUi) 

2. 编写静态页面:

新增src/pages/login/index.vue文件

<template><div class="login"><el-form label-width="80px" ref="formRef" :model="form" :rules="rules"><el-form-item label="用户名" prop="username"><el-input v-model="form.username" placeholder="请输入用户名"/></el-form-item><el-form-item label="密码" prop="password"><el-input v-model="form.password" placeholder="请输入密码" type="password"/></el-form-item><el-form-item><el-button type="primary" @click="login">登录</el-button></el-form-item></el-form></div>
</template>
<script>
export default {name: 'Login',data() {return {form: {username: '',password: ''},rules: {username: [{required: true, message: '用户名不能为空', trigger: 'blur'}],password: [{required: true, message: '密码不能为空', trigger: 'blur'}]}}},methods: {login() {this.$refs.formRef.validate(valid => {if (valid) {this.$message({type: 'success', message: '验证通过'})} else {this.$message({type: 'error', message: '验证失败'})}})}}
}
</script>
<style scoped>
.login {position: absolute;width: 500px;height: 500px;top: 50%;left: 50%;transform: translate(-50%, -50%);
}</style>

知识点说明:

  1. 元素居中
.login {position: absolute;width: 500px;height: 500px;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

top\left从中心点开始布局,然后向左上角移动50%。
2. 表单和数据的双向绑定:model = form
3. 指定表单验证规则 :rules=“rules” prop具体校验字段 this.$refs.formRef.validate进行所有字段校验。

3.路由设置

  1. 新建src/router/index.js
import Vue from 'vue'
import VueRouter from "vue-router"
import Login from '../pages/login'Vue.use(VueRouter)
const routes = [{path: "/login",component: Login
}]
const router = new VueRouter({routes,mode: 'hash'
})
export default router;
  1. main.js进行挂载
import router from './router';
new Vue({router,render: h => h(App),
}).$mount('#app')
  1. 添加router-view 展示路径对应的组件
<template><div id="app"><router-view/><!--    <img alt="Vue logo" src="./assets/logo.png">--><!--    <HelloWorld msg="Welcome to Your Vue.js App"/>--></div>
</template>

http://localhost:8080/#/login

添加网络请求

  1. 拦截网络请求,添加校验头
    新建src/utils/request.js
import axios from 'axios'const request = axios.create({timeout: 5000
})
request.interceptors.request.use(config => {const token = localStorage.getItem('token')if (token) {config.headers["authorization"] = token;}return config;}
)
export default request;
  1. 创建login具体网络请求
    新建src/api/login.js
import request from "@/utils/request";const login = (admin) => {return request({url: '/dev-api/auth/login',method: 'post',data: admin})
}
export default {login
};
  1. vue.config.js 设置代理地址
const {defineConfig} = require('@vue/cli-service')
module.exports = defineConfig({lintOnSave: false,transpileDependencies: true,devServer: {proxy: {'/dev-api': {target: `http://localhost:28080`,changeOrigin: true,pathRewrite: {['^' + process.env.VUE_APP_BASE_API]: '/dev-api'}}},}
})
  1. 对网络接口进行集中管理
    新增 src/api/index.js
import login from './login'export default {login,
}
  1. 将api挂在Vue简化import
import api from './api';
Vue.prototype.$api = api;
  1. login页面进行调用
          this.$api.login.login(this.form).then(response => {const {code, msg, data} = response.data;if (200 === code) {this.$message({type: 'success',message: '登录成功'})localStorage.setItem('token', data.access_token);this.$router.push("/")} else {this.$message({type: 'error', message: msg})}})

其他

  1. 编译运行ESLint 报错
    /.eslintrc.js 添加一下内容(没有进行新建)
module.exports = {rules: {"*": "off"},
};

/vue.config.js 添加 lintOnSave:false

const {defineConfig} = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,lintOnSave: false,
})

相关文章:

Vue2 + ElementUI + axios + VueRouter入门

之前没有pc端开发基础&#xff0c;工作需要使用若依框架进行了一年的前端开发.最近看到一个视频框架一步步集成&#xff0c;感觉颇受启发&#xff0c;在此记录一下学习心得。视频链接:vue2element ui 快速入门 环境搭建和依赖安装 安装nodejs安装Vue Cli使用vue create proje…...

GO网络编程(四):海量用户通信系统2:登录功能核心【重难点】

目录 一、C/S详细通信流程图二、消息类型定义与json标签1. 消息类型定义2. JSON标签3.结构体示例及其 JSON 表示&#xff1a;4.完整代码与使用说明 三、客户端发送消息1. 连接到服务器2. 准备发送消息3. 创建 LoginMes 并序列化4. 将序列化后的数据嵌入消息结构5. 序列化整个 M…...

某项目实战分析代码二

某项目实战分析代码二 此次分析的是protobuf的使用操作流程具体实现 3. 业务数据分析3.1 客户端3.2 服务器端简单案例 此次分析的是protobuf的使用 Protocol Buffer( 简称 Protobuf) 是Google公司内部的混合语言数据标准&#xff0c;它是一种轻便高效的结构化数据存储格式&…...

全面指南:探索并实施解决Windows系统中“mfc140u.dll丢失”的解决方法

当你的电脑出现mfc140u.dll丢失的问题是什么情况呢&#xff1f;mfc140u.dll文件依赖了什么&#xff1f;mfc140u.dll丢失会导致电脑出现什么情况&#xff1f;今天这篇文章就和大家聊聊mfc140u.dll丢失的解决办法。希望能够有效的帮助你解决这问题。 哪些程序依赖mfc140u.dll文件…...

QT学习笔记1(QT和QT creator介绍)

QT学习笔记1&#xff08;QT和QT creator介绍&#xff09; Qt 是一个跨平台的应用开发框架&#xff0c;主要用于图形用户界面&#xff08;GUI&#xff09;应用的开发&#xff0c;但也支持非GUI程序的开发。Qt 支持多种平台&#xff0c;如Windows、macOS、Linux、iOS和Android&a…...

存储电话号码的数据类型,用 int 还是用 string?

在 Java 编程中&#xff0c;存储电话号码的选择可以通过两种常见方式进行&#xff1a;使用 int 类型或 String 类型。这种选择看似简单&#xff0c;但实际上涉及到 JVM 内部的字节码实现、内存优化、数据表示、以及潜在的可扩展性问题。 Java 基本数据类型与引用数据类型的差异…...

【目标检测】工程机械车辆数据集2690张4类VOC+YOLO格式

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;2694 标注数量(xml文件个数)&#xff1a;2694 标注数量(txt文件个数)&#xff1a;2694 标注…...

target_link_libraries()

target_link_libraries() 是 CMake 中的一个命令&#xff0c;用于指定目标&#xff08;如可执行文件或库&#xff09;所依赖的其他库。其主要作用包括&#xff1a; 链接库&#xff1a;将指定的库链接到目标上&#xff0c;使目标能够调用这些库中的函数和使用其功能。 管理依赖…...

Javascript数组研究09_Array.prototype[Symbol.unscopables]

Symbol.unscopables 是 JavaScript 中一个相对较新的符号&#xff08;Symbol&#xff09;&#xff0c;用于控制对象属性在 with 语句中的可见性。它主要用于内置对象&#xff0c;如 Array.prototype&#xff0c;以防止某些方法被引入到 with 语句的作用域中&#xff0c;避免潜在…...

SkyWalking 自定义链路追踪

对项目中的业务方法&#xff0c;实现链路追踪&#xff0c;方便我们排查问题 引入依赖 <!‐‐ SkyWalking 工具类 ‐‐> <dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm‐toolkit‐trace</artifactId> <vers…...

Linux驱动开发(速记版)--设备模型

第八十章 设备模型基本框架-kobject 和 kset 80.1 什么是设备模型 设备模型使Linux内核处理复杂设备更高效。 字符设备驱动适用于简单设备&#xff0c;但对于电源管理和热插拔&#xff0c;不够灵活。 设备模型允许开发人员以高级方式描述硬件及关系&#xff0c;提供API处理设备…...

动手学深度学习(李沐)PyTorch 第 6 章 卷积神经网络

李宏毅-卷积神经网络CNN 如果使用全连接层&#xff1a;第一层的weight就有3*10^7个 观察 1&#xff1a;检测模式不需要整张图像 很多重要的pattern只要看小范围即可 简化1&#xff1a;感受野 根据观察1 可以做第1个简化&#xff0c;卷积神经网络会设定一个区域&#xff0c…...

新编英语语法教程

新编英语语法教程 1. 新编英语语法教程 (第 6 版) 学生用书1.1. 目录1.2. 电子课件 References A New English Grammar Coursebook 新编英语语法教程 (第 6 版) 学生用书新编英语语法教程 (第 6 版) 教师用书 1. 新编英语语法教程 (第 6 版) 学生用书 https://erp.sflep.cn/…...

Golang 服务器虚拟化应用案例

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…...

Elasticsearch基础_4.ES搜索功能

文章目录 一、搜索辅助功能1.1、指定返回的字段1.2、结果计数1.3、结果分页 二、搜索匹配功能2.1、查询所有文档2.2、term级别查询2.2.1、term查询2.2.2、terms查询2.2.3、range查询2.2.4、exists查询 2.3、布尔查询2.3.1、must&#xff0c;should&#xff0c;must_not2.3.2、f…...

Elasticsearch要点简记

Elasticsearch要点简记 1、ES概述2、基础概念&#xff08;1&#xff09;索引、文档、字段&#xff08;2&#xff09;映射&#xff08;3&#xff09;DSL 3、架构原理4、索引字段的数据类型5、ES的三种分页方式&#xff08;1&#xff09;深度分页&#xff08;fromsize&#xff09…...

【通信协议】IIC通信协议详解

IIC&#xff08;Inter-Integrated Circuit&#xff09;通信协议&#xff0c;又称为I2C&#xff08;Inter-Integrated Circuit 2&#xff09;协议&#xff0c;是一种广泛使用的串行通信协议。它由Philips Semiconductor&#xff08;现NXP Semiconductors&#xff09;开发&#x…...

2024年中国科技核心期刊目录(社会科学卷)

2024年中国科技核心期刊目录 &#xff08;社会科学卷&#xff09; 序号 期刊代码 期刊名称 1 SC02 JOURNAL OF S…...

用Python集成免费IP归属地查询API

IP查询的优势是什么&#xff1f; IP查询是一种强大的工具&#xff0c;能够快速提供关于IP地址的信息&#xff0c;如地理位置、互联网服务提供商&#xff08;ISP&#xff09;、连接类型等。这些数据在多种场景下都非常有用&#xff0c;帮助用户理解网络环境和用户行为。 首先&…...

C 数组

C 数组 数组是C语言中的一种基本数据结构&#xff0c;用于存储一系列相同类型的数据。它是连续的内存分配&#xff0c;允许通过索引快速访问元素。本文将详细介绍C数组的概念、使用方法、以及注意事项。 1. 数组的概念 数组是一个集合&#xff0c;可以存储一定数量的元素。在…...

C语言入门实战:从开发环境搭建到核心语法精讲

1. 从零开始&#xff1a;为什么是C语言&#xff0c;以及我们该如何开始如果你对编程世界充满好奇&#xff0c;或者想从最坚实的地基开始构建你的技术大厦&#xff0c;那么选择C语言作为起点&#xff0c;绝对是一个明智且充满挑战的决定。这不是一个轻松的选择&#xff0c;但它的…...

GD32C103RBT6 I2C 驱动全解析

一、I2C 通信基础概述 1. I2C 硬件接口 GD32C10x 提供 I2C0、I2C1 两组硬件 I2C: SCL:串行时钟线(由主机产生) SDA:串行数据线 需外接 上拉电阻(4.7kΩ 经典值) 支持 多主机、多从机 2. 通信模式 主机模式:MCU 主动发起通信(最常用) 从机模式:MCU 被其他主机访问 …...

从单摆到机械臂:拉格朗日方程如何统一描述‘运动与力’?一个思维模型讲透

从单摆到机械臂&#xff1a;拉格朗日方程如何统一描述‘运动与力’&#xff1f;一个思维模型讲透 想象你手中握着一根细绳&#xff0c;末端悬挂着一个小球。轻轻推动它&#xff0c;小球便开始左右摆动——这就是经典的单摆系统。看似简单的运动背后&#xff0c;却隐藏着自然界最…...

Crontab实战指南:从基础配置到高级调试技巧

1. Crontab入门&#xff1a;从零开始掌握定时任务 第一次接触Crontab时&#xff0c;我被这个看似简单却功能强大的工具深深吸引。作为Linux系统中最经典的定时任务工具&#xff0c;它就像一位不知疲倦的助手&#xff0c;能够精确地在指定时间执行你交代的任何任务。记得刚开始使…...

JetBrains IDE试用期重置终极指南:如何永久免费使用专业开发工具

JetBrains IDE试用期重置终极指南&#xff1a;如何永久免费使用专业开发工具 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 还在为JetBrains IDE试用期到期而烦恼吗&#xff1f;每次30天试用结束后&#xff0c;那…...

【免费下载】 MATLAB 3D 极坐标绘图示例:天线三维方向图【matlab下载】

MATLAB 3D 极坐标绘图示例&#xff1a;天线三维方向图 项目介绍 在科学计算和工程设计领域&#xff0c;MATLAB一直是数据可视化和仿真的强大工具。然而&#xff0c;当涉及到在三维空间中使用极坐标系统进行绘图时&#xff0c;MATLAB的标准绘图函数如surf和mesh就显得力不从心。…...

如何高效下载B站视频:3分钟掌握智能下载工具完整指南

如何高效下载B站视频&#xff1a;3分钟掌握智能下载工具完整指南 【免费下载链接】BiliDownloader BiliDownloader是一款界面精简&#xff0c;操作简单且高速下载的b站下载器 项目地址: https://gitcode.com/gh_mirrors/bi/BiliDownloader 你是否曾经遇到过这样的情况&a…...

免费扩展Windows虚拟显示器:5分钟打造高效多屏工作空间

免费扩展Windows虚拟显示器&#xff1a;5分钟打造高效多屏工作空间 【免费下载链接】virtual-display-rs A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10. Works with VR, obs, streaming software, etc 项目地址: https://gitco…...

STC32G单片机开发实战:GPIO模式配置与寄存器详解

1. STC32G单片机GPIO基础认知 第一次拿到STC32G开发板时&#xff0c;我习惯性地想用STM32那套HAL库来操作GPIO&#xff0c;结果发现根本行不通。这就像拿着汽车钥匙去开保险箱&#xff0c;虽然都是"开锁"&#xff0c;但机制完全不同。STC32G作为增强型8051架构单片机…...

盘点6款优质客户销售管理系统:全业务打通到垂直场景适配

前言在数字化转型的深水区&#xff0c;企业对于管理工具的需求已从单一的工具辅助转向全链路的业务协同。面对市场上纷繁复杂的SaaS产品&#xff0c;如何基于“客户信息管理、销售机会管理、表单流程、数据统计、移动端端支持、自动化、权限安全、系统集成”八大核心维度进行精…...