智慧商城:点击“加入购物车”判断是否登录来进行跳转到登录页登录并回跳 + 发请求渲染加入购物车数量的角标

server/2024/12/23 4:16:15/

点击“加入购物车”判断是否登录来进行跳转到登录页登录并回跳

 

 

 按需引入需要的 Dialog 组件并进行全局注册

Vue.use( )仅仅在Vue组件的上下文中起作用,所以在Vue组件中通过 this.$ 来使用
在 js 文件中则还要导入,然后直接使用,并不需要 this 加持

 

在底下的弹层中点击加入购物车时,先要判断是否已经登陆,登录则能加入购物车,没有则跳转到登陆页面登陆

判断的依据是是否在本地存储了用户信息,当初在设计登陆页面的时候将用户信息不仅在vuex的state中进行了存储,为了防止刷新将用户信息刷新掉,又在本地进行了存储 ,getters中的 token()方法中

为加入购物车注册点击事件,在事件函数中进行判断

this.$dialog.confirm({}).then(()=>{}) .catch(()=>{})进行确认取消

用户信息存储在vuex中的store文件夹下的index.js的getters方法中 

 

首先来到商品详情页,此前并未进行登录,右边开发者工具存储中也并未有用户信息,点击加入购物车会弹出弹框 

 

点击确认跳转到登陆页进行登录 

 

登录之后则能在开发者工具中看到存储了用户信息

并且页面跳转到首页

如果希望弹出框不是 “确认”和 “取消” 

 

this.$route.fullPath 的含义

 
  • 在 Vue.js 应用中,this.$route 是一个路由对象,它包含了与当前路由相关的各种信息。其中,fullPath 属性表示当前路由的完整路径,这个路径包含了路由的基本路径以及可能存在的查询参数等内容。例如,对于一个路由路径为 /product?id=123 的页面,this.$route.fullPath 就会返回 /product?id=123 这样完整的字符串。

 

  • 当你在一个 Vue 组件中使用this.$route时,Vue Router 会自动将当前路由的相关信息注入到该组件实例中。这是 Vue Router 与 Vue.js 深度集成的一部分,使得组件能够方便地访问路由信息,而无需手动在路由配置中进行额外的设置。

登录页完成之后,应该继续返回详情页弹层,进行加入购物车操作。而不是返回首页 

this.$route.fullPath是该页面完整地址

 

 点击确认框跳转到登录页,并且携带该详情页完整地址作为参数

修改登录页登陆完成之后的跳转页面。如果是查询到登录页携带详情页地址,那么跳转到详情页,否则返回首页

 

 在详情页跳转到登录页完成登陆回跳回来之后,如果点击返回是会返回到登录页而不是商品列表,所以用 replace 替代 push 解决

replace不会新增历史记录

 发请求渲染加入购物车数量的角标

 

封装接口:在api文件夹下新建文件 cart.js用于封装加入购物车请求方法 

 

因为任何需要登录的都要配置请求头,所以直接配置在请求拦截器中 

Access-Token中带特殊字符,用对象的方括号写法

 

 点击加入购物车请求参数进行渲染

 

 

 

笔记中直接cv图标样式 

 

 

 


http://www.ppmy.cn/server/152403.html

相关文章

【ETCD】【Linearizable Read OR Serializable Read】ETCD 数据读取:强一致性 vs 高性能,选择最适合的读取模式

ETCD 提供了两种不同类型的读取操作方式,分别是 Linearizable Read(线性化读取)和 Serializable Read(可串行化读取)。这两种方式主要区分在读取数据时对一致性的要求不同。 目录 1. Linearizable Read(线…

Sui 基金会任命 Christian Thompson 为新任负责人

Sui 基金会是专注于推动 Sui 蓬勃发展的生态增长与采用的机构。近日,基金会宣布任命 Christian Thompson 为新任负责人。在 Sui 主网发布的开创性一年里,Sui 凭借其无与伦比的速度、可扩展性和效率,迅速崛起为领先的 Layer 1 区块链之一&…

微信小程序支付/微信小程序+node服务 支付爬坑 v2

一、前端 小程序登录及支付请求和唤起支付界面 // app.js const {request} require(./assets/js/utils) // app.js App({onLaunch() {// 展示本地存储能力const logs wx.getStorageSync(logs) || []logs.unshift(Date.now())wx.setStorageSync(logs, logs)// 登录wx.login({s…

电脑开机提示error loading operating system怎么修复?

前一天电脑还能正常运行,但今天启动时却显示“Error loading operating system”(加载操作系统错误)。我已经仔细检查了硬盘、接线、内存、CPU和电源,确认这些硬件都没有问题。硬盘在其他电脑上可以正常使用,说明不是硬…

【从零开始入门unity游戏开发之——C#篇23】C#面向对象继承——`as`类型转化和`is`类型检查、向上转型和向下转型、里氏替换原则(LSP)

文章目录 一、as类型转化和is类型检查1、as 关键字使用场景:语法:示例:特点: 2、is 关键字使用场景:语法:示例:特点: 3、总结 二、向上转型和向下转型1、向上转型示例: 2…

Java设计模式实战:策略模式、工厂模式、模板模式组合使用

Java设计模式实战:策略模式、工厂模式、模板模式组合使用 在软件开发中,设计模式是解决特定问题的成熟模板。它们可以帮助我们写出更灵活、更可维护的代码。本文将通过一个充电场景为例,展示如何将策略模式(Strategy Pattern&…

oracle常用语句

目录 一.连接数据库SQL*Plus 连接本地连接远程连接使用操作系统认证 二.管理数据库启动数据库关闭数据库 三.数据字典和视图视图:1.数据库基础信息视图V$DATABASEV$INSTANCEV$VERSION 2.用户和权限管理视图DBA_USERSDBA_ROLE_PRIVSDBA_SYS_PRIVSDBA_TAB_PRIVS 3.表空…

线程和进程、作业的区别

线程和进程、作业的区别 作业(任务)有多个进程,进程有多个线程 进程(Process): 进程是程序的一次执行过程,是操作系统进行资源分配和调度的基本单位。 每个进程都有独立的内存空间&#xff0c…