当前位置: 首页 > news >正文

网站设计基本步骤软件开发工程师有前途吗

网站设计基本步骤,软件开发工程师有前途吗,三、网站开发使用软件环境,检察机关门户网站建设情况文章目录 axios基本概念axios多种方式调用工具函数axios的拦截器如何实现#xff1f;用的设计模式是哪种#xff1f;axios如何实现取消请求#xff0c;和cancelToken如何使用 axios基本概念 axios是目前比较流行的一个js库#xff0c;是一个基于promise的网络数据请求库用的设计模式是哪种axios如何实现取消请求和cancelToken如何使用 axios基本概念 axios是目前比较流行的一个js库是一个基于promise的网络数据请求库主要用于发送网络数据请求从后台服务器上获取数据返回给前端。 优点特性 从浏览器中创建 XMLHttpRequests从 node.js 创建 http 请求支持 Promise API拦截请求和响应转换请求数据和响应数据取消请求自动转换 JSON 数据客户端支持防御 XSRF axios多种方式调用 axios的常用几种方式就是 axios.get(url,config); url表示请求地址config表示配置对象axios.post(url,config)axios(config) 从上面可以看出axios既可以当函数axios()使用又可以当对象axios.get()使用原理 实质上axios是一个函数但函数也属于是一个对象所以同样可以向它身上追加属性和方法我们所使用的axios是通过createInstance这个函数创造出来的它简单实现的源码如下。 函数中实例化了AxiosAxios真正调用的是Axios原型链上的request方法因此导出的axios需要关联到request方法这里巧妙的通过bind函数进行关联生成关联后的instance函数同时指定它的调用上下文就是Axios的实例对象因此instance调用时也能获取到实例对象上的defaults和interceptors属性但是仅仅关联request还不够再通过extend函数将Axios原型对象上的所有get、post等函数扩展到instance函数上因此这也是我们才能够使用多种方式调用的原因所在。 function createInstance(defaultConfig) {// 1.实例化Axiosvar context new Axios(defaultConfig);// 2.注意这里bind是一个自定义函数返回一个函数{Axios.prototype.request.apply(context,args)}// 这里request基本是Axios的核心方法相当于将这些方法全部绑到了实例化的对象上var instance bind(Axios.prototype.request, context);// Copy axios.prototype to instance// 3.将Axios原型链上的其他方法也都绑定到instance上去这些方法的this会指向contxtutils.extend(instance, Axios.prototype, context);// Copy context to instance// 4.将contxt上的属性复制到instance上去utils.extend(instance, context);return instance; }axios的构造函数AxiosAxios函数在原型对象上还挂载了request、get、post等函数但是get、post等函数最终都是通过request函数来发起请求的。而且request函数最终返回了一个Promise对象 因此我们才能通过then函数接收到请求结果。 class Axios {constructor(instanceConfig) {this.defaults instanceConfig;this.interceptors {request: new InterceptorManager(),response: new InterceptorManager()};}request() {}}一个是将默认配置保存到defaults另一个则是构造了interceptors拦截器对象 核心request函数主要作用 兼容多种传参方式(1. request(‘example/url’, { method: ‘post’ }); request({ url: ‘example/url’, method: ‘post’ }))合并参数通过promise的链式调用处理请求、响应拦截器以及发送请求等操作。 工具函数 bind将Axios原型上的方法挂载到instance上extend将构造函数 Axios.prototype 上的方法挂载到新的实例 instance 上然后将原型各个方法中的 this 指向 context axios的拦截器如何实现用的设计模式是哪种 拦截器实现就只有一个属性用于保存拦截器及三个原型方法添加、移除、执行。 实例化axios后就可以调用use进行绑定拦截器需要注意的是在传递use方法的第一个参数时必须返回config保证下一个promise能获取到处理后的参数。 options是可选参数对象可传入两个属性(synchronous, runWhen)这么设计就是使用了责任链设计模式。 axios采用promise.resolve的方式将拦截器异步化。将所有请求拦截器放在请求方法之前unshift所有的响应拦截器放在后push。遍历所有的方法通过promise的then方法将所有方法放在一条链上。 责任链模式是一种行为设计模式 允许你将请求沿着处理者链进行发送。 收到请求后 每个处理者均可对请求进行处理 或将其传递给链上的下个处理者。 优点 你可以控制请求处理的顺序。单一职责原则。 你可对发起操作和执行操作的类进行解耦。开闭原则。 你可以在不更改现有代码的情况下在程序中新增处理者。 责任链模式执行的顺序是请求拦截器 - 发起请求 - 响应拦截器这其实就是一个链条上串起了三个职责。 axios如何实现取消请求和cancelToken如何使用 创建一个 CancelToken 的实例,它有一个 executor 函数,可以通过调用 executor 参数中的 cancel 函数来取消请求。在 axios 请求配置中指定 cancelToken 属性,将 CancelToken 实例传递进去。当我们需要取消请求时,调用 CancelToken 实例的 cancel() 方法即可取消对应的请求。axios 检测到配置的 cancelToken 被取消,就会取消掉这个请求,并在错误回调中返回一个 Cancel 错误。axios 内部会监听 cancelToken 实例的 cancel 信号,一旦触发就会跳出队列,取消对应请求的执行。 使用方法 import axios from axios; const CancelToken axios.CancelToken; let cancel; axios.get(/user/12345, {cancelToken: new CancelToken(function executor(c) {// executor 函数接收一个 cancel 函数作为参数cancel c;}) }); // 取消请求 cancel(Operation canceled by the user.);
http://www.pierceye.com/news/460264/

相关文章:

  • 如何做网站管理网站服务器基本配置
  • 做网站需要参考书目书龙岩营销型网站建设
  • 南通网站建设解决方案求助如何做网站推广
  • 揭阳企业做网站淮安做网站
  • 怎么给餐饮店做网站用织梦做企业网站
  • 技术支持 创思佳网站建设如何制作自己的网站
  • 济南网站建设公司晟创未来wordpress xml插件
  • 前端做商城网站需要多久实训课网站开发个人小结
  • 南宁网站seo排名优化手机网站制作架构
  • 亿唐网不做网站做品牌案例分析seo 推广服务
  • 深圳网站建设服务器如何编写一份网站开发需求文档
  • 营销网站策划wordpress主题在线汉化插件下载
  • 深圳市网站开发个人养老保险金怎么交
  • 超炫html5网站模板新手做网站怎么上传系统
  • 一个网站的二级目录在另一台服务器上_怎么做网络营销工程师前景
  • 个人网站推广软件企业网站建设变相收取等级保护费6
  • 有没有一些网站可以做问卷个人网站 服务器
  • 网站前端WordPress怎么自定义页眉
  • 常州企业免费建站秦皇岛市住房公积金管理中心
  • 网站建设网站需要什么软件有哪些使用wordpress开发一个页面
  • 贵溪市城乡建设局网站手机网站推荐
  • wordpress多站点的路径深圳龙岗区宝龙街道
  • 做外贸免费发布产品的网站装修软件app哪个好
  • 网站注册系统医疗器械分类目录2021
  • 珠海建设网站百度收录有什么好处
  • 二手网站专业做附近人的有吗免费申请网站永久
  • 校园二手市场网站开发网站文章优化流程方案
  • 手机网站的必要性衡水网站设计费用
  • 厦门市建设安全管理协会网站网站登录模板下载
  • 江苏启安建设集团有限公司网站wordpress图标字体不显示不出来