Vue电商项目--登录与注册

这篇具有很好参考价值的文章主要介绍了Vue电商项目--登录与注册。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

登录注册静态组件

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript刚刚报了一个错误,找不到图片的资源

assets文件夹--放置全部组件共用静态资源

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 在样式当中也可以使用@符号【src别名】。切记在前面加上 

注册业务上

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript先修改原先的接口成这个按钮

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 然后把input框里面的数据保存到data中 

注册业务下

就是点击获取验证码,就要发起请求

下面是接口:

/api/user/passport/sendCode/{phone}

获取验证码

get

/api/user/userAddress/auth/findUserAddressList

获取用户地址信息

get

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript请求给完,写仓库。这里把登录和注册合为一个仓库 

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascriptVue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 然后去调用它

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 成功返回了一个验证码

获取验证码的这个接口,把验证码返回,但是正常情况,后台验证码发送到用户手机上【省钱】

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 这样就把数据存储进去了,此时我们就可以在组件中拿数据了

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 添加一个事件,用于获取vuex中的验证码

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 获取成功

完成下一个逻辑,俩个密码之间的判断

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 当然,注册按钮也是有点击事件,也是向服务器发起请求

看接口文档 

注册用户

请求地址

/api/user/passport/register

请求方式

POST

参数类型

参数名称

类型

是否必选

描述

phone

string

Y

注册手机号

password

string

Y

密码

code

string

Y

验证码

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": null,

    "ok": true

}

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 先写接口,然后去仓库发起请求

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 派发action

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 测试登录成功

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript

完善代码 

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 成功回调 

登录业务(token)

在登陆界面收集用户名和密码

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript然后是登陆的接口

请求地址

/api/user/passport/login

请求方式

POST

参数类型

参数名称

类型

是否必选

描述

phone

string

Y

用户名

password

string

Y

密码

返回示例

成功:

{

code: 200

message: "成功"

data:{

nickName:"Administrator",

name:"Admin",

token: 90aa16f24d04c7d882051412f9ec45b"

}

ok: true

}

失败:

{

   code: 201

message: "失败"

data: null

ok: false

}

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript先写接口,然后在仓库中去调用这个接口

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 然后去派发action 

写一个登陆的回调

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 这里我们要注意的一点,就是阻止表单的默认行为。

这里有一个注意点

Cannot access ‘phone‘ before initialization 我报了这个错误

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript解决方案就是const {phone,password}=this;少了;

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 登录成功他会返回三个值

其中一个token要注意

登录成功的时候,后台为了区分你这个用户是谁-服务器下发token【令牌:唯一标识符】

登录接口:做的不完美,一般登录成功服务器会下发token,前台持久化存储token,【带着token找服务器要用户信息进行展示】

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript

我们需要持久化存储这个token的值,但是要注意的一点就是,vuex是不能持久化的存储数据

用户登录携带token获取用户信息

复习:

1.完成了登录和注册的静态组件【assets文件夹:组件共用的静态资源 css当中书写@符号】

2.表单验证暂时没有处理,最后一天统一处理

3.vuex存储数据非持久化

添加了token校验获取用户登录信息,用户登录只保存用户的token

token校验

http://182.92.128.115/api/user/passport/auth/getUserInfo

先写接口

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript

 写完api,搞三连环

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript

然后在请求拦截器中,设置他的token

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 此时登录,然后跳转就能token了

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 然后使用v-if把登录先后页面需要展示的显示出来

但是在刷新,token就没了。因为没有再次派发事件,所以,现在我们这种写法没有持久化存储,不完整的。

登录业务中讲解存在问题

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript

持久化存储,也可以采用外部封装的方式

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 外部封装了一个,然后引用它

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 现在我们确实是存了,但是并没有取出来使用

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript上面获取用户信息的代码有点问题,我并没有写完成,因此参数没有传进来。因此报错了,下面是完整代码

async getUserInfo({commit},data){
        let result=await reqUserInfo(data)
        if(result.code==200){
            commit("GETUSERINFO",result.data)
        }
    }

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript

 这就能实现持久化存储 

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript也可以封装成一个模块

但是现在只是在home页面中有效果,因为我们只在home配发了这个。

现在还存在俩个问题1.多个组件展示用户信息需要在每一个组件的mounted中出发 this.$store.dispatch('getUserInfo')不行

2.用户登录了,就不应该在会有登录页 

退出登录

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript先给退出按钮绑定一个事件

1.需要发请求,通知服务器退出登录【清除一些数据,token】

2.清除项目当中的数据【userinfo.token】 

退出请求文档:

退出登陆

请求地址

/api/user/passport/logout

请求方式

GET

参数类型

返回示例

成功:

{

    "code": 200,

    "message": "成功",

    "data": null,

    "ok": true

}

老样子先写api

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript然后仓库三连环 

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript然后还有清除本地数据 

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascriptVue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript然后派发action

Vue电商项目--登录与注册,前端框架Vue2+Vue3,vue.js,前端,javascript 退出成功,返回home页面 文章来源地址https://www.toymoban.com/news/detail-548496.html

到了这里,关于Vue电商项目--登录与注册的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 黑马程序员前端 Vue3 小兔鲜电商项目——(七)详情页

    模板代码 创建 srcviewsDetailindex.vue 文件,添加以下代码: 配置路由 在 srcrouterindex.js 中添加对应路由【 /detail/{goodId} 】: 链接跳转 对 srcviewsHomecomponentsHomeNew.vue 文件及其他涉及商品信息的页面修改路由跳转: 封装接口 在 srcapisdetail.js 文件中封装接口用于获取商品信息

    2024年02月10日
    浏览(56)
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第1篇:认识Vue3,1. Vue3组合式API体验【附代码文档】

    通过 Counter 案例 体验Vue3新引入的组合式API 特点: 代码量变少 分散式维护变成集中式维护 ![image.png]( create-vue是Vue官方新的脚手架工具,底层切换到了 vite (下一代前端工具链),为开发提供极速响应 ![image.png]( 前置条件 - 已安装16.0或更高版本的Node.js 执行如下命令,这一指

    2024年03月17日
    浏览(54)
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第2篇:什么是pinia,1. 创建空Vue项目【附代码文档】

    Pinia 是 Vue 的专属状态管理库,可以实现跨组件或页面共享状态,是 vuex 状态管理工具的替代品,和 Vuex相比,具备以下优势 提供更加简单的API (去掉了 mutation ) 提供符合组合式API风格的API (和 Vue3 新语法统一) 去掉了modules的概念,每一个store都是一个独立的模块 搭配

    2024年03月21日
    浏览(46)
  • Vue项目实战——【基于 Vue3.x + Vant UI】实现一个多功能记账本(登录注册页面,验证码)

    系列内容 参考链接 基于 Vue3.x + Vant UI 的多功能记账本(一) 项目演示,涉及知识点 基于 Vue3.x + Vant UI 的多功能记账本(二) 搭建开发环境 基于 Vue3.x + Vant UI 的多功能记账本(三) 开发导航栏及公共部分 项目演示 Vue3 + Vant UI_多功能记账本 1、登录注册页面 页面设计,页面

    2024年02月03日
    浏览(68)
  • 【前端Vue】Vue3+Pinia小兔鲜电商项目第4篇:静态结构搭建和路由配置,1. 准备分类组件【附代码文档】

    Vue3+ElementPlus+Pinia开发小兔鲜电商项目完整教程(附代码资料)主要内容讲述:认识Vue3,使用create-vue搭建Vue3项目1. Vue3组合式API体验,2. Vue3更多的优势,1. 认识create-vue,2. 使用create-vue创建项目,1. setup选项的写法和执行时机,2. setup中写代码的特点。什么是pinia,创建空Vue项目并安装

    2024年04月11日
    浏览(46)
  • 【WebSocket项目实战】聊天室(前端vue3、后端spring框架)

    最近我学习了WebSocket,为了更好地掌握这一技术,我决定通过做一个项目来巩固学习成果。在这个项目中,我将使用JavaScript和WebSocket来实现实时通信,让客户端和服务器端能够实时地传递和接收数据。通过这个项目,我希望能够更深入地了解WebSocket的工作原理,并且能够在实

    2024年02月04日
    浏览(47)
  • Vue2电商前台项目——项目的初始化及搭建

    Vue基础知识点击此处——Vue.js 使用脚手架创建项目,在需要放置项目的目录下打开cmd输入: 这个name是项目名(我的项目名是potato-mall 创建有问题或者不太熟悉的具体参考之前的脚手架配置笔记 1、脚手架目录介绍 项目创建成功后,点开项目目录,会出现以下文件: 这些文件

    2024年02月09日
    浏览(53)
  • Vue2电商前台项目——完成Detail详情页模块业务

    Vue基础知识点击此处——Vue.js 这里已经滚瓜烂熟了哈哈哈哈。。。。 1、准备静态页面 2、拆分组件,配置路由信息 3、写接口,使用Vuex存储数据 4、把服务器数据渲染到页面上 这里把详情页Detail组件放到路由组件pages里 src/pages/Detail/index.vue 点击商品图片 = 路由跳转并传参

    2024年02月09日
    浏览(40)
  • 前端(四)——vue.js、vue、vue2、vue3

    😊博主:小猫娃来啦 😊文章核心: vue.js、vue、vue2、vue3从全局到局部 Vue.js是一款流行的JavaScript框架 vue,vue2,vue3都是vue.js的不同版本。 Vue:Vue.js的第一个版本,也称为Vue 1.x。它于2014年首次发布,并获得了广泛的应用和认可。 Vue2:Vue.js的第二个版本,也称为Vue 2.x。它在Vu

    2024年02月12日
    浏览(75)
  • 【前端面经】Vue3和Vue2的区别

    Vue是一种非常流行的JavaScript框架,因其易用性和灵活性在开发人员中备受欢迎。Vue2是Vue框架的上一个重要版本,于2016年发布。但是,Vue3是最新版本的Vue框架,于2020年正式发布并带来了一些重大变化。本文将探讨Vue3和Vue2之间的主要区别。 Vue3的一个显着优势是其更小的代码

    2024年02月02日
    浏览(81)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包