Vue电商项目--导航守卫

导航守卫理解

导航 守卫

导航:表示路由正在发送改变,进行路由跳转

守卫:你把它当中‘紫禁城守卫’

全局守卫:你项目中,只要路由变化,守卫就能监听到。

举例:紫禁城【皇帝,太子】,紫禁城大门守卫全要检查

欧克,我们开始修改代码

说一下前置路由守卫的三个参数

router.beforeEach((to,from,next)=>{

})

 to:可以获取到你要跳转到那个路由信息

from:可以获取到你从哪个路由而来的信息

next:放行函数 next()放行 next(path) 放行到指令路由  next(false) 此路不通,原路返回

导航守卫的判断

用户已经登录,无法在跳转去login页面,但我们去其他页面它的token就没了。因为我们只在home页面派发了action,我们需要获取用户对象

现在的逻辑是如果你登录了,那是没有用户信息,它给你派送一个用户信息,然后放行。如果token失效了,清除token,重新登录

导航守卫用户登录操作

router.beforeEach(async (to,from,next)=>{next();let token=store.state.user.token;let name=store.state.user.userInfo.name;if(token){if(to.path=='/login'){next('/home')}else{// 如果有用户名if(name){next();}else{try {// 没有用户名,派发action让仓库存储用户信息在跳转await store.dispatch('getUserInfo');next();} catch (error) {// token过期// 清除tokenawait store.dispatch('userLogout');next('/login')}}}}else{}
})

trade静态组件

统一登录的账号?

13700000000 111111

先拆分trade静态组件,然后去注册路由

 然后是这个页面

我是结算按钮然后跳转到这个页面

获取交易页数据

接口说明

/api/user/userAddress/auth/findUserAddressList

获取用户地址信息

get

这是一个新的模块,要写一个新的仓库 

测试一下,派发这个action。成功了

获取交易页面用户信息?

用户登录了才可以获取用户地址信息,不登录没办法获取到的

 然后将他存储到仓库当中。 

除了这个请求,我们还要有获取订单交易页信息

获取订单交易页信息

请求地址

/api/order/auth/trade

请求方式

GET

参数类型

参数名称

类型

是否必选

描述

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": {

       "totalAmount": 23996,

       "userAddressList": [

            {

                "id": 2,

                "userAddress": "北京市昌平区2",

                "userId": 2,

                "consignee": "admin",

                "phoneNum": "15011111111",

                "isDefault": "1"

            }

        ],

        "tradeNo": "1b23c1efc8144bfc83e51807f4e71d3a",

        "totalNum": 1,

        "detailArrayList": [

            {

                "id": null,

                "orderId": null,

                "skuId": 4,

                "skuName": "Apple iPhone 11 移动联通电信4G手机 双卡双待",

                "imgUrl": "http://192.168.200.128:8080/RLOAElEmAATrIT-1J9Q110.jpg",

                "orderPrice": 5999,

                "skuNum": 4,

                "hasStock": null

            }

        ]

    },

    "ok": true

}

 

 获取订单交易页信息,并存储到vuex中

用户地址信息的展示

通过计算属性,把数据从vuex中拿出来。

然后渲染到页面上 

把数据拿出来,然后渲染到页面上

 这里的点击我们有一个排他的思想 

通过这个方法的绑定实现,排他思想

但我们最终要实现的是我们选中了上面那个收集人信息,下面的信息也应该发生改变

我们可以在计算属性中封装一个新的字段,这里是find查找数组中符合条件的元素返回,返回为最终的结果 

然后渲染到页面上

交易页面完成

先解决之前一个假报错的问题

老样子,把订单从vuex中捞到组件中 

先拿数据 

然后动态的渲染到页面上

现在修改这部分的内容

 搞定 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/54261.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ONE·Linux || 基础IO(一)】

总言 文件输入与输出相关介绍:语言层面/系统层面文件调用接口举例、文件描述符、重定向说明、缓冲区理解。 文章目录 总言1、文件输入与输出1.1、预备知识1.2、语言层面:回归C语言中文件相关接口1.2.1、打开文件和关闭文件:对当前路径的理解…

了解Linux 的 mmap --- 笔记

学习这篇博客,进行了一些归纳Linux下mmap_linux mmap_一个山里的少年的博客-CSDN博客https://blog.csdn.net/qq_56999918/article/details/127070280 >>读取文件 读取文件方法:由操作系统提供的两个方法,read和write来读写文件。 由…

Java面向对象学习第三部分

一、Static修饰符 static是静态的意思,基本概念如下: Static分类: 一般我们分类都是按照是否使用static修饰进行分类。分为静态变量(类变量)、实例变量。 静态变量和实例变量的比较: 比较,…

华为云交付

文章目录 一、华为云-公有云架构华为公有云的主要服务1.华为云服务—计算类2.华为云服务——存储类3.华为云服务—网络类4.华为云服务—管理和监督类5.华为云数据库 二、待续 一、华为云-公有云架构 华为公有云的主要服务 ECS:弹性云服务器( Elastic Cl…

程序员副业指南:怎样实现年入10w+的目标?

大家好,这里是程序员晚枫,全网同名。 今天给大家分享一个大家都感兴趣的话题:程序员可以做什么副业,年入十万? 01 推荐 程序员可以从事以下副业,以获得一年收入10w: 兼职编程:可…

SpringCloud深度学习(在更)

微服务简介 微服务是什么? 微服务是一种架构风格,将一个大型应用程序拆分为一组小型、自治的服务。每个服务都运行在自己独立的进程中,使用轻量级的通信机制(通常是HTTP或消息队列)进行相互之间的通信。这种方式使得…

Agents改变游戏规则,亚马逊云科技生成式AI让基础模型加速工作流

最近,Stability AI正式发布了下一代文生图模型——Stable Diffusion XL 1.0这次的1.0版本是Stability AI的旗舰版生图模型,也是最先进的开源生图模型。 在目前的开放式图像模型中,SDXL 1.0是参数数量最多的。官方表示,这次采用的…

记录电赛色块追踪部分

代码其实也很简单,我只不过加入了按键控制暂停、蜂鸣器、led和如何控制追踪的效果(调PID)。B站的那些大神早早地完成了要求,我犯了一个不好地错误,企图三连让他们分享思路,这是不对的,电赛本身的…

无人机巢的作用及应用领域解析

无人机巢作为无人机领域的创新设备,不仅可以实现无人机的自主充电和电池交换,还为无人机提供安全便捷的存放空间。为了帮助大家更好地了解无人机巢,本文将着重解析无人机巢的作用和应用领域。 一、无人机巢的作用 无人机巢作为无人机技术的重…

读发布!设计与部署稳定的分布式系统(第2版)笔记28_控制层上

1. 控制层囊括所有在后台运行的成功处理生产负载的软件和服务 1.1. 处理用户生产数据的那些软件,就是生产软件 1.2. 主要工作是管理其他软件的软件,就是控制层 1.3. 工具和问题之间存在着重叠和空白,并不是每个工具组合都能协同工作&#…

yxBUG记录

1、 原因:前端参数method方法名写错。 2、Field ‘REC_ID‘ doesn‘t have a default value 问题是id的生成问题。 项目的表不是自增。项目有封装好的方法。调用方法即可。 params.put("rec_id",getSequence("表名")) 3、sql语句有问题 检…

MySql之慢Sql定位分析

MySql之慢Sql定位分析 定位低效率执行SQL 可以通过以下两种方式定位执行效率较低的SQL语句。 慢查询日志:通过慢查询日志定位那些执行效率较低的SQL语句,用- log-slow-queries[ file name]选项启动时, mysqld是一个包含所有执行时间超过 long_query_time秒的sql请句的日志文…