| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Vue电商后台管理系统项目开发实战(二) -> 正文阅读 |
|
[JavaScript知识库]Vue电商后台管理系统项目开发实战(二) |
前言经历了项目初始化,本篇主要介绍 项目初始化之后路由的配置,以及前几个组件的配置,可以把一个组件理解为一个页面,每个页面就是一个组件。 Login组件?首先,我们需要在router.js中引入我们创建好的Login.vue组件, ?通过实例化router对象,以及router的hash模式完成配置 ?当用户访问'/login'时,向用户展示 我们写好的Login组件,并且添加路由的重定向,来设置,如果用户访问了'/'时,我们也让用户跳转到'/login' 中 接下来进入到Login组件的配置
?Login作为我们所配置的子组件,需要在内容首位放入一对template标签,此外,在template中,我们需要唯一的一个根节点进行包裹。 表单登录区域 我们在el-form设置了v-model=‘loginForm’ 用来绑定 整个表单用到的数据,在input中可以通过,v-model=‘loginForm.name'的方式 来进行数据的双向绑定 ?el-form 中 :rules='loginRules' 用来绑定表单的验证规则 ?在el-form-item中我们只需要通过prop属性绑定验证规则即可 ?验证效果如图。 再往下是登录和重置按钮,通过@click来绑定点击事件 重置的点击事件?这里的this指向的是我们vue的实例对象,$refs是 element-ui 帮我们挂在到实例对象上的。 翻看element-ui提供的文档 ?由此可以得知,resetField可以帮我们移除表单里的数据,以及验证结果 登录按钮?眼下我们需要讲用户所填写的用户名密码,提交到服务器进行验证,但是在这之前,我们需要先让用户通过表单的验证,减少没必要的请求,减小服务器端的压力。 validete就是用来帮助我们进行表单的预校验的,它返回一个boolean 如果校验成功返回true,如果失败返回false 因此我们这里需要 调用if (!valid) 如果valid 为false 就让函数return出去。 校验成功我们就可以向服务器发起请求了 查看接口文档 ?发起请求成功以后发现服务器返回了一个promise对象 ?因此我们需要es7 为我们提供的async/await 方法 来简化 我们的异步请求操作 此外利用解构赋值 接收服务器返回的参数 我们log看一下 ?返回了一个对象,以及服务器返回的数据 通过res.meta.status判断请求是否成功,如果失败,就通过this.$message提示用户,登录失败。 请求成功通过window.sessionStorage.setItem('token', res.data.token)保存 服务器返回 回来的token值,并且通过$router.push让页面跳转到我们所需要的页面即组件上。 为什么需要保存token呢 因为它是一种身份认证的机制,接下来将用于我们的路由守卫,以及后续相关请求中。 ?我们F12看看我们的sessionstorage token以及被保存下来了 登录成功以后自动跳转到后台管理页面 ? ?全局路由守卫?在我们的router文件中,我们需要添加一个路由守卫,保护我们的用户信息。 根据以上代码,我们逐行分析 如果用户访问的是'/login' 此页面 我们不需要用户提供token 因为token是在页面登录成功以后,服务器才会发放的。 接下来通过window.sessionStorage.getItem('token') 获取刚刚我们用window.sessionStorage.setItem所保存下来的键名为token的值,并且用tokenStr接受 如果tokenStr为空,强制返回'/login'组件,如果存在,放行。 最后我们需要通过export 将router 暴露出去供其他组件使用。 ?补充我们每次发起请求,访问的url都应该带根目录,但是每次都填根目录,显得很繁琐,因此我们用上了一个axios为我们提供的方法,设置我们的根目录 ?在接下来的组件中,我们发起请求是,都应该添加我们的请求头,我们在此也配置一下。 ?通过axios提供的请求拦截器,在我们每次发起请求时,过滤一下我们的数据,为我们的请求添加请求头,请求头则是刚刚获取到服务器颁发给我们的token? 此外 拦截器 我们必须要用return 返回值 ?总结考虑到家人们可能需要复制代码段,但是我又喜欢截图。我把gitee链接发布给大佬们浏览 ? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 4:04:17- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |