手把手前端入门笔记之vue-element-admin-01

2023-10-31

前言:

本文主要为vue-element-admin框架的入门教程,本人2年后端开发经验,想自学前端转全栈工程师(听着就好酷),直接上手实战应该是入门前端最快的方式了,在此记录下学习过程,希望可以对初学者有所帮助。如有错误或未考虑完全的地方,望不吝赐教。

第一期 手把手前端入门笔记之vue-element-admin-01

第二期 手把手前端入门笔记之vue-element-admin-02

第三期 手把手前端入门笔记之vue-element-admin-03

第四期 手把手前端入门笔记之vue-element-admin-04

环境(配置):win11操作系统,vs code编辑器

内容大纲:vue-element-admin实现登入/获取信息/登出功能(包含token等数据本地存储)

介绍

vue-element-admin是一个后台前端解决方案,它基于vueelement-ui实现。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。

目录结构

一上来就看到那么多文件夹确实头疼,咱先不管别的,主要先了解标注部分文件

├── build                      # 构建相关
├── mock                       # 项目mock 模拟数据
├── plop-templates             # 基本模板
├── public                     # 静态资源
│   │── favicon.ico            # favicon图标
│   └── index.html             # html模板
├── src                        # 源代码
│   ├── api                    # 所有请求
│   ├── assets                 # 主题 字体等静态资源
│   ├── components             # 全局公用组件
│   ├── directive              # 全局指令
│   ├── filters                # 全局 filter
│   ├── icons                  # 项目所有 svg icons
│   ├── lang                   # 国际化 language
│   ├── layout                 # 全局 layout
│   ├── router                 # 路由
│   ├── store                  # 全局 store管理
│   ├── styles                 # 全局样式
│   ├── utils                  # 全局公用方法
│   ├── vendor                 # 公用vendor
│   ├── views                  # views 所有页面
│   ├── App.vue                # 入口页面
│   ├── main.js                # 入口文件 加载组件 初始化等
│   └── permission.js          # 权限管理
├── tests                      # 测试
├── .env.xxx                   # 环境变量配置
├── .eslintrc.js               # eslint 配置项
├── .babelrc                   # babel-loader 配置
├── .travis.yml                # 自动化CI配置
├── vue.config.js              # vue-cli 配置
├── postcss.config.js          # postcss 配置
└── package.json               # package.json

上手安装

# 克隆项目
git clone https://github.com/PanJiaChen/vue-element-admin.git

# 进入项目目录
cd vue-element-admin

# 安装依赖
npm install

# 建议不要用 cnpm 安装 会有各种诡异的bug 可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org

# 本地开发 启动项目
npm run dev

启动后会自动打开以下页面

具体步骤

从上文的目录结构中可以得知所有页面相关的文件在 src/views 文件夹中,既然是登入页面,所以就在login文件夹中

哇,一下子多了好多看不懂的东西怎么办,那就把不认识的都注释掉,保存,访问页面,不报错就行!

我们稍微简化一下,只留账号密码登入功能,(vue的基础语法官网需要自己稍微了解一下)

接着,找到登入按钮

<el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" @click.native.prevent="handleLogin">登入 </el-button>

@click.native.prevent="handleLogin",找到点击后触发的“handleLogin”函数,来看一下都做了哪些事

​出现this.$store,我们去找到该目录(src/store/modules/)下user.js文件

再可以看到它引用了login这个函数,Ctrl+鼠标左键跳转过去看看,(路径src/api/user.js)

(本文使用的后端接口都是套用以前开发其他项目时写的接口,大家可以随便写几个,返回假数据就好了。如果实在不了解后端接口是什么可以d我给你发几个案例)

这里的return request({}),我们也可以ctrl+鼠标左键跳转过去(或者看图片上路径)

所以request是封装好的axios,主要用于发送网络请求

修改配置

重点看着一段,定义了code为20000时请求算成功,根据我们自己的后端接口可以重新定义,比如我的接口返回code为0是正确的

我们可以发现目前项目并没有后端却可以发送数据,是因为配置文件里,返回了mock文件夹中的假数据,我们把他注释掉

本地开发环境中替换成我们自己后端服务地址(修改配置文件后需要npm run dev 重启服务,不然不会生效!!)

​然后可以回到登入页面,发起请求。

我们可以右键-审查元素,查看自己发送的请求情况

​如上图,可以看到自己发送请求的路由与接口返回的信息(具体详细的自己百度一下哈)

如果返回是错误的,应该是后端url错了或者是接口路由不存在,根据错误码进行排查

实现登入

例如:我后端登入接口返回数据为

{ code:0, data:{uid: "10001",token:"eyJhbGc····MilbCjgrE" msg:"success" }

我想把返回的uid字段也存储到本地,方便以后调用,就可以用localStorage.setItem(key, value)函数

登入算是请求成功了,并且存储了token与uid,我们可以看到同时他还请求了用户信息接口

获取个人信息

同样找到获取个人信息接口,替换成我们自己的接口地址,请求传参写法参考axios官方文档 ,我这里token是放在headers中的所以写成上图形式,返回的参数可以参考mock中原先的示例

发现返回的info内容,继续往上找users[token]是在哪里定义的 ( ctrl+鼠标左键 跳转)

所以它默认的就是根据登入的用户roles字段,返回这几个内容(我们自己的后端服务接口直接return这些内容就可以了),修改后点击登入成功进入了主页

我们此时发现一个报错的请求,看这边的url,是因为请求当前页面数据并没有找到这个接口,我们可以先忽略

登出功能

再来看我们的登出(退出)的功能

​我们可以全局搜索该按钮的名字 “Log Out”

​我们会发现单机后它请求了这个函数

他请求了这个登出的接口,不过一般浏览器的登入前端就能完成,所以我们可以随便百度一下vue如何实现登出,

const storage = window.localStorage storage.clear() window.location.href = `/login?redirect=${this.$route.fullPath}`

清除本地存储的数据(根据自己token存储的位置用对应的清除方法即可)

好了!简单登入登出已经完成了!

下一篇准备学习权限菜单控制与列表展示!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手把手前端入门笔记之vue-element-admin-01 的相关文章

  • 如何等待第一次画布重绘,直到 @font-face-font 加载?

    我有一个 HTML5 画布并用它编写文本context fillText 使用 font face font 使用 Firefox 3 6 显示页面我遇到问题 在画布的第一次绘制上 字体尚未下载 因此文本将以标准字体显示 我找到了一个 解决
  • HTMLPanel 中的 JavaScript

    我想在 HTMLPanel 元素中包含 Javascript 代码 但它不起作用 请你帮助我好吗 提前致谢 脚本 pro js alert hello 使用 HTMLPANEL 不起作用 不显示警报 我认为应该是相反的 HTMLPanel
  • 如何在 Atom 中启用 .vue 文件的语法突出显示?

    我开始使用 Vue js 我遇到的第一个问题是我的 IDE Atom 无法美化我的 vue 文件 这一切都只是白色的文字 如何让 Atom 正确突出显示 vue 文件 语言 vue https atom io packages langua
  • 图表外的 JQPlot 图例

    我正在使用 JQPlot 并且在一个 HTML 页面上有很多图表 每个图表都有相同的图例 我的问题是 是否可以完全在图表之外显示图例 并在 HTML 页面或自己的 div 中拥有自己的位置 legend show true renderer
  • 如何使用react-native-router-flux在模态中进行导航

    我需要在我的反应本机应用程序中的模式中进行导航 使用新版本的react native router flux 似乎不可能做到这一点 我可以创建一个垂直动画来显示下一个场景 这与场景顶部的模态不同
  • 关联数组不按顺序排列

    关联数组的顺序是这样的 A00 gt value1 A01 gt value2 B01 gt value3 B02 gt value4 但是在 for 循环之后数组顺序不起作用 for var key in obj3 code list1
  • jquery如何获取右、左、上、下箭头键值

    我使用了下面的代码 每当单击箭头键 左 右 上 下 时 我得到的键值为 0 任何人都可以帮忙解决这个问题吗 document keypress function e alert key value e which 如何获取 上 下 右 左
  • 使用jquery,下拉列表选择更改时如何重定向?

    我有一个下拉列表 如果有人选择一个选项 我想根据选择重定向到另一个页面 我怎样才能通过 jquery 做到这一点 将逻辑绑定到 change 事件 并从中获取当前值 val 以确定用户应该被重定向到哪里 此示例假设位置直接存储在值本身中 m
  • AngularJS:如何缓存从 $http 调用返回的 json 数据?

    如何缓存从 http 调用返回的 json 数据 我使用以下风格的 http 调用 http url SomeWebMethodUrl method POST data query somevalue headers Content Typ
  • 创建一个通用函数以将其用于其他数据

    我正在制作一个项目列表 并希望随着数量变化计算其值 但如何使该函数通用以便我可以将它用于所有行 你能建议一些最好和简单的方法 但请记住我想这样做仅限 JavaScript table thead tr th Name th th Quant
  • 是否有跨浏览器的 jQuery contentEditable 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个 jQuery 插件 库 它可以使 contentEditable 属性在所有主要浏览器中正常工作 我什至可以不用 IE6
  • 用角度js中的字母过滤列表

    我在表格中显示了一个列表 我需要使用名称的第一个字母来过滤结果 在列表上方我有一个字母 A B C D 等等 单击后 字母列表将按名字过滤 例如 列表详细信息是Apple Boy Bridge点击后A Apple将显示 我必须过滤国家名称以
  • 在 for 循环中突破 Promise 块

    我有以下代码 this storeNameValidate function stores var deferred q defer console log stores for storeIndex in stores this name
  • Mapbox 关闭除一层之外的所有图层

    我是 Mapbox 和 javascript 的新手 我试图稍微修改一下 Mapbox GL 代码示例 发现here https www mapbox com mapbox gl js example toggle layers 允许打开
  • 函数声明可以出现在 JavaScript 的语句内部吗?

    请考虑将官方 ECMAScript 规范作为您答案的来源 而不是特定浏览器供应商发布的文档 我知道 Mozilla 用 函数语句 扩展了它的 JavaScript 实现 因此 根据 ECMAScript 规范 因此 其中定义的语法产生式 这
  • 对数滑块

    我有一个值范围从 0 到 100 的滑块 我想将它们映射到 100 到 10 000 000 的范围 我在网上看到过一些函数 但它们都是用 C 编写的 我需要它在 JavaScript 中 有任何想法吗 您可以使用这样的函数 functio
  • codemirror - 在编辑器内检测并创建链接

    我正在使用 codemirror 配置为显示 javascript 我有这样的代码 var ref http www example com test html var ref2 http www example com test2 htm
  • 如何使我的响应式网站在手机上支持“请求桌面网站”?

    我有一个响应灵敏的动态网站 Java Servlet 驱动且完全手工编码 由于它是一个返回数据表的科学站点 因此某些选项在较小的视口宽度下不可用 然而 可能有些用户更喜欢在桌面网站上挣扎才能访问这些选项 我希望适应他们 我的问题是 对于 i
  • 为什么事件属性不容易获取?

    我有以下代码 HERE https jsfiddle net 5n2zagjc 2 是可编辑的示例 用法 在输入字段中键入并观看控制台 function test event let keys Object keys event let k
  • Google Maps JavaScript API v3 方向功能

    我使用 Google Maps js API v3 我可以根据路径点显示方向this http code google com intl hu apis maps documentation directions Waypoints 我想要

随机推荐

  • Mitmproxy 新版配置上游(二级)代理

    Mitmproxy 最新新版配置上游代理 由于在 4 0版本之后flow live change upstream proxy server proxy 方法已经弃用 会引发 AttributeError NoneType object h
  • UGUI之Image、RawImage使用说明

    UGUI之Image RawImage使用说明 Image说明 基本属性 图片切割 九宫格 图集 RawImage可以做什么 用途一 小地图 用途二 帧动画 动图 小常识 Image说明 Image是UGUI中最常见的控件 用于图片的显示
  • golang安装步骤

    1 首先找到资源下载地址 https studygolang com dl 2 下载完毕后 下图是下载好的文件 新建一个文件夹install path 当作安装目录 此处的install file 是下载的资源文件 install path
  • 2021/2/26 单链表应用------一元多项式

    单链表应用 一元多项式 学习时间 2021 2 26 题目名称 单链表应用 一元多项式 问题描述 编写一个程序用单链表存储多项式 并实现两个一元多项式A与B相加的函数 A B刚开始是升序的 A与B之和按降序排列 例如 多项式A 1 2X 0
  • 随机高斯分布的100个2D点

    import numpy as np import matplotlib pyplot as plt 生成随机的10个点 分布在300x300的区域内 num nodes 1000 mean 150 150 高斯分布的均值 cov 500
  • 程序员必读书籍一览表

    书籍推荐 按角色划分 一 软件工程师 Clean Code 代码整洁之道 Implementation Patterns 实现模式 Code Complete 代码大全 Refactoring Improving the Design of
  • 内联函数使用注意事项

    class TableClass private int I j public int add return I j inline int dec return I j int GetNum inline int tableclass Ge
  • uinapp发送和处理二进制数据流

    uinapp发送和处理二进制数据流 将二进制数据流转为json param Object buffer export function buffer to json buffer return JSON parse base64 decod
  • github学习记录目录

    说明 很久没有更新过CSDN了 一方面是因为图片上传和排版过于麻烦 另一方面是因为没有另一方面 懒狗一只 其实是放在GitHub了 CSDN里的东西也不想搬过去 权当重新开始学习啦 平时的学习记录均会不定时的上传到GitHub上 希望走过路
  • 【数据集】——SBD数据集下载链接

    简介 SBD Dataset 是一个语义边界数据集 其包含来自 PASCAL VOC 2011 数据集中 11355 张图片的注释 这些图片均基于 Amazon Mechanical Turk 其中分割之间的冲突均为手动解决 此外 每张图像
  • hadoop之hello world

    初学hadoop 这是第一个例子wordCount import java io IOException import java util StringTokenizer import org apach hadoop conf impor
  • 2022十三届蓝桥杯省赛赛时代码

    1478 14 应该就是取模问题 include
  • 刻章不要钱 5个在线印章制作工具

    俺的博客里的图片 还有网生代上俺写的文章很多都是用印章当作图片水印的 奇怪的是 怎么没人眼馋 有了现代科技 刻章其实很简单了 本文就介绍几个在线印章制作工具 一 MakePic印章生成器 允许输入2 4个汉字 可选择的字体有 经典繁印篆 经
  • 算法导论 学习笔记 第三章 函数的增长

    当输入规模足够大 要研究算法的渐近效率 即我们关心当输入规模无限增加时 在极限中 算法的运行时间如何随着输入规模的变大而增加 主要使用以下渐近记号描述算法的运行时间 1 记号 给定一个函数g n 用 g n 表示以下函数的集合 若存在正常量
  • python之路-untitest单元测试框架组件使用详细介绍

    文章目录 unittest xmind思维导图 UnitTest介绍 TestCase TestSuite TextTestRunner TestLoader TestSuite和TestLoader的使用区别 小结 Fixture 方法级
  • 北京政府占股扶持机构

    1 北京中关村发展集团股份有限公司 2 北京中海投资管理有限公司 http www zhtzgl cn 3 北京首都科技集团有限责任公司 4 亦庄国际 http www etowncapital com zjtz columnsId 40
  • Linux线程知识总结

    1 编程头文件
  • react-实现页面跳转

    Link a标签 需设置path属性 值为路径 点击后会跳转到指定的路径 Router 用来包裹整个组件 Route 指定对应路径所展示的组件 Route写在哪里组件就展示在哪里 路由会给组件提供history属性 在this props里
  • Transformers训练预处理datasets出现Socket Timeout

    原因 ddp的时候默认等待时间是1800s 如果超出这个时间程序就会退出 解决方法 更新transformers库 低版本不支持如下方式 并添加参数 ddp timeout 3600 这里3600s只是demo 具体根据自身程序来设置
  • 手把手前端入门笔记之vue-element-admin-01

    前言 本文主要为vue element admin框架的入门教程 本人2年后端开发经验 想自学前端转全栈工程师 听着就好酷 直接上手实战应该是入门前端最快的方式了 在此记录下学习过程 希望可以对初学者有所帮助 如有错误或未考虑完全的地方 望