前端电商项目

本文介绍了基于Vue3.0开发的电商项目,包括技术栈、遇到的问题及解决方案。使用了vue-router、vuex(结合vuex-persistedstate进行状态持久化)、axios和vee-validate等工具。在组件封装方面,详细讲解了轮播图、复选框和表单校验的实现。此外,还讨论了QQ登录的实现过程和数据懒加载的策略。
摘要由CSDN通过智能技术生成

项目介绍:

该项目是基于vue-cli创建的一个综合性的电商购物网站,类似于淘宝,京东商城。登录后用户可以在该网站浏览商品,加入购物车,下订单以及各种各样的活动。未登录的用户可以不能进行下单,他们可以通过手机号注册或者qq登录的方式进行登录完成购物。

技术栈:

vue3.0(使用组合API的方式来开发),axios,vue-router(单页路由),vuex(状态管理, vuex数据持久化),@vueuse/core(组合api常用工具库), vee-validate(表单校验)

遇到的问题:

(1)后台接口请求完毕,但是数据缺乏(分类,商品),所以会有一些本地的moke数据

(2)绝大多数第三方UI组件库不支持vue3.0,大多数组件由自己封装(轮播图,复选框,对话框消息提示和消息确认组件,城市选择组件)

(3)第三方登录也是有点难度

vuex-持久化:

让在vuex中存储的状态和数据存储在本地。

在开发过程中,用户的信息(名字,头像,token等)需要在vuex中存储且需要存储在本地

购物车未登录状态下也支持,管理在vuex中的数据需要存储在本地

所以,通过安装vuex插件来支持vuex的状态持久化

请求工具:

基于axios封装的请求工具,调用接口时使用

(1)创建一个新的axios实例

(2)请求拦截器:如果有token进行头部携带

(3)相应拦截器:①剥离无效数据   ②处理token失效

(4)导出一个函数,调用当前的axios实例发请求,返回一个promise

请求拦截器:

instance.interceptors.request.use(config => {
  // 拦截业务逻辑
  // 进行请求配置的修改
  // 如果本地又token就在头部携带
  // 1. 获取用户信息对象
  const { profile } = store.state.user
  // 2. 判断是否有token
  if (profile.token) {
    // 3. 设置token
    config.headers.Authorization = `Bearer ${profile.token}`
  }
  return config
}, err => {
  return Promise.reject(err)
})

响应拦截器:

// res => res.data  取出data数据,将来调用接口的时候直接拿到的就是后台的数据
instance.interceptors.response.use(res => res.data, err => {
  // 401 状态码,进入该函数
  if (err.response && err.response.status === 401) {
    // 1. 清空无效用户信息
    // 2. 跳转到登录页
    // 3. 跳转需要传参(当前路由地址)给登录页码
    store.commit('user/setUser', {})
    // 当前路由地址
    // 组件里头:`/user?a=10` $route.path === /user  $route.fullPath === /user?a=10
    // js模块中:router.currentRoute.value.fullPath 就是当前路由地址
  • 3
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值