美文网首页
一、项目目录介绍

一、项目目录介绍

作者: 雪燃归来 | 来源:发表于2020-04-18 12:00 被阅读0次

在这里,我想通过写博客的方式,来记录一下自己的思考过程。本篇专栏主要是使用typescript来重写axios,开篇,先来熟悉一下项目的目录结构。

一、环境的搭建

我们这里使用了集成安装环境typescript-library-starter集成安装环境,可以帮助我们安装所需要的代码环境。至于这个集成环境的使用,我们可以点击进去了解更多。
安装好环境之后,我们的代码目录结构如下图所示

image.png
在这个目录中,我们会把核心代码放到src/目录中,在examples目录中,我们会编写一些测试用例。

二、创建请求、规范化数据

在了解项目的目录结构后,我们就开始写我们的代码。
首先新建文件(/src/index.ts)

1、首先创建axios构造函数,并将其暴露出去

function axios(config: AxiosRequestConfig) {
  processConfig(config)
  xhr(config)
}

export default axios

在这个构造函数中,我们需要传入config参数,对config参数的类型,我们可以定义一个接口类型约束一下。

2、定义接口约束

新建文件 src/types/index.ts

export interface AxiosRequestConfig {
  url: string
  method?: Method
  data?: any
  params?: any
  headers?: any
}

在这个接口中,我们定义Axios构造函数接受参数的格式,相信大家对接口中的参数是比较了解的。

3、创建xhr对象,发送请求

Axios构造函数有了,那么我们就要在该构造函数中实现发送请求的操作了。

import { AxiosRequestConfig } from './types'
export default function xhr(config: AxiosRequestConfig): void {
  const { data, url, method = 'get' } = config
  const request = new XMLHttpRequest()
  request.open(method.toUpperCase(), url, true)  //
  request.send(data)
}

我们新建XMLHttpRequest实例对象request,通过request.open(method, url, true)和request.send(data)发送请求。解释一些open()方法的第三个值。默认为trrue,表示要不要异步执行操作。如果值为false,send()方法直到收到答复前不会返回。

通过上面的步骤,我们的基本请求框架就算是搭建起来了,剩下就是给这个框架中添砖加瓦的呢。

相关文章

  • 一、项目目录介绍

    在这里,我想通过写博客的方式,来记录一下自己的思考过程。本篇专栏主要是使用typescript来重写axios,开...

  • web项目目录介绍

    1.web-info: WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以...

  • Vue项目目录介绍

    1.我们刚才项目默认安装的路径为C:\Windows\System32\shopping 2.用webstrom打...

  • javaweb项目目录介绍

  • 原生项目中引入ReactNative介绍篇

    原生项目中引入ReactNative介绍篇 工程目录结构介绍 项目结构介绍 MyDemondemon_androi...

  • GO项目目录结构介绍

    GO语言项目结构 在进行GO语言项目开发的时候,我们的代码总是会保存在$GOPATH/src目录下。在项目经过go...

  • 目录介绍

    这里使用 nest cli 创建项目,您将学会创建项目的目录介绍。 使用 nest cli建立项目 将创建项目目录...

  • Android组件化实践项目分享

    目录介绍 01.项目介绍 02.项目运行 03.项目部分介绍 04.项目组件化结构 05.项目版本更新 06.项目...

  • react项目目录结构介绍-02

    创建好项目后,下面来介绍一下项目的目录结构。 目录结构如上图所示: src中的index.js介绍: 写在最后: ...

  • 第2章:SpringBoot入门案例

    2.1创建spring boot项目项目 2.2pom.xml文件介绍 2.3目录结构介绍 注意:SpringBo...

网友评论

      本文标题:一、项目目录介绍

      本文链接:https://www.haomeiwen.com/subject/yixvvhtx.html