点击“加入购物车”判断是否登录来进行跳转到登录页登录并回跳
按需引入需要的 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图标样式