第五章 openblock-gui实现用户登录4(前端发送请求)

前端发送请求

前言

上一章我们已经实现了登录弹窗了,那有了登录弹窗接下来肯定要获取登录信息开始登录了对吧,那本章我们就一起来实现获取弹窗的输入信息并完成请求发送。

代码编写

首先呢我们是不是需要先去收集到用户在弹出框内填入的账号和密码对吧,好的那么接下来呢我们便修改下我们之前写的login-popup,需要对input框加入ref属性(如果你还是熟悉ref是什么建议翻到我们的第二章去bilibili先学一学),然后就是新增一个getAccountAndPasswod的方法,然后将按钮的点击事件替换成getAccountAndPasswod,修改如下
在这里插入图片描述

修改完保存来看看效果呗
在这里插入图片描述
这就获取的用户输入的信息了,是不是很简单,那么接下来我们就要来修改下我们的reducer了,在此之前我们来回顾下天禹老师给出的redux原理图
在这里插入图片描述
看着上图我们打开我们之前写好的reducer(user-status.jsx),分析下我们之前所写的redux是不是缺少了ActionCreators并且reducer也并完整没有根据action去做相应的工作对吧,因此我们现在要完善我们之前写的user-status,修改如下
在这里插入图片描述
目前已经能获取到用户输入并且完善了reducer,接下来就是发送用户请求了,发送请求前在src下新建一个public文件夹,然后在public下新建utils.js,将以下内容拷贝进去

/**
 * 封装fetch请求
 */
 
// 全局路径
const commonUrl = 'http://www.XX.com:8001'
export const parseJSON = function (response) {
    return response.json();
};
export const checkStatus = function (response) {
    if (response.status >= 200 && response.status < 500){
        return response;
    }
    const error = new Error(response.statusText)
    error.response = response
    throw error;
};
// eslint-disable-next-line require-jsdoc
export default function request (options = {}) {
    const {data, url} = options
    options = {...options}
    // 跨域
    options.mode = 'cors'
    delete options.url
    if (data) {
        delete options.data
        options.body = JSON.stringify({
            data
        });
    }
    options.headers = {
        'Content-Type': 'application/json'
    }
    return fetch(commonUrl + url, options, {credentials: 'include'})
        .then(checkStatus)
        .then(parseJSON)
        .catch(err => ({err}));
}

然后在login-popup内导入刚才从user-state内暴露出来的方法以及public\utils.js内的方法
在这里插入图片描述

然后在LoginPopup组件内添加fetch请求方法
在这里插入图片描述
来测试下,正确请求,当然没有后端与数据库的小伙伴是请求不到的,不过也别害怕最后一章我将会讲后端与数据库,先写着
在这里插入图片描述

接下来就是展示我们请求回来的数据就行了,我们之前做了loginState的共享,现在也是一样的把userData做个共享,考虑到篇幅有点长了,userData共享内容我们下一章见。

上一章
第四章 openblock-gui实现用户登录3(登录弹窗制作)
下一章
第六章 openblock-gui实现用户登录5(userData共享)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值