自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 axios封装源码解析,包含取消重复请求,路由变化取消全部请求等

针对以上的几种问题,对axios进行了简单的封装。支持了如下的功能以上功能的核心就是支持取消未完成的请求。可以在Axios 实例上记录所有未完成的请求。即创建一个req_pending_list,通过axios的请求拦截,当发送请求时,添加该请求到req_pending_list中,请求结束时,req_pending_list中删除该请求,具体代码如下:针对取消重复请求,即可以在请求拦截时,判断是否是重复请求,如果是的话,cancel已有的请求,或cancel本次的请求。以上就是axios封装的核心代码

2022-06-22 18:38:33 297

原创 三大跨域问题解决方案

跨域问题的产生的原因基于浏览的同源策略,不同源之间的的http请求会被约束从而防止浏览器受到XSS、CSRF等攻击,所以浏览器就会禁止不同源之间的http,cookies等的访问。什么是跨域当URL中的协议、域名、端口,三者中有一个不相同,即称为不同源,不同源之间的访问就会产生跨域。跨域现象的解决方案1.nginx反向代理(简单)仅需要通过nginx配置一个代理服务器,用于转发请求,不需要修改任何的代码,就可以通过代理服务器访问不同的源,从而简单的实现跨域。2.CORS跨域基于http头的机

2022-06-19 21:59:30 544

原创 前端页面渲染的几种方式(CSR/SSG/SSR)

一文让你读懂常用的三种页面渲染方式

2022-02-10 10:15:01 9614 3

原创 参加星火可视化大赛,赢取万元大奖,并有机会获得实习及招聘绿色通道的机会~

参加星火可视化大赛,赢取万元大奖,并有机会获得实习及招聘绿色通道的机会~参加星火可视化大赛,赢取万元大奖,并有机会获得实习及招聘绿色通道的机会~点击链接查看https://58xinghuo.com/activity/pages/propaganda?inviter=36592902705167星火是58同城大数据部历时两年精心打造的新一代具备SaaS能力的数据分析可视化产品,提供敏捷BI、可视化报告、Dashboard服务、数据大屏等能力,以数据洞察为导向,从数据接入到终端展现,提供数据生态全链

2021-11-11 15:11:05 1169

原创 webpack & vite 原理对比

vite 在,在生产环境中,采用了rollup进行打包。而在开发中是一个基于浏览器原生 ES Modules 的开发服务器。利用浏览器去解析模块,在服务器端按需编译返回,跳过了打包这个概念,解决了webpack在大型项目中启动慢的问题。1.服务器启动对比使用webpack这类基于打包方式的启动,需要将所有模块打包成一个或多个bundle,交给服务器运行,如下图所示而vite,一个基于浏览器原生 ES Module 的开发服务器。利用浏览器去解析模块,只有用到的模块,才会加载进来,没有用到模块,不会参

2021-05-16 11:28:59 1168

原创 js 如何实现深拷贝

当数组或者对象中每一项的值都是基本数据类型时,可以通过简单的方法实现深拷贝,数组: array.slice() array.concat es6 …解构对象:object.assign() es6 …解构但是当为多层嵌套的数组或者对象时,以上的方法均会失效了简单的大招至上,可以通过json.stringly json.parse 进行简单粗暴的深拷贝还可以手写递归进行深拷贝const deepClone = (data) => {if (typeof data !== "objec

2021-01-04 16:43:33 134

原创 echarts 饼图内部显示百分比,外部显示文字说明

为了实现产品的要求,饼图中既显示百分比又显示文字的说明(如下图)查了echarts 文档,并不能通过简单的配置来实现,原因如下:在单个serie的label中,只能设置一个label,位置可以选择在饼图内部inner,或者饼图外部outer,无法实现同时实现内部、外部显示,想到设置两个serie,让两个饼图完全重合即可,一个外标签显示文字说明,另一个显示内标签,实现百分比。 series: [ // 画外部描述的饼图 { type: "pie"

2020-12-28 15:20:34 8650 1

原创 如何解决跨页面之间的通信问题

在项目中遇到在新标签页打开一个页面的问题,这时候 新老页面,如果需要数据传输,就可以通过H5 的新特性,postMessage 进行解决,在原页面const a = window.open(‘qqq’)a.postMessage(‘发送个数据:A’, ‘*’)在新的页面,监听 document.addEventLIstener(‘message’, ()=>{Console.log(‘接收到数据A’)})...

2020-06-30 23:24:38 421

原创 js判断变量为一个数组或对象

判断一个变量一个对象:1.原型判断:这个方法也可以用到下面的判断数组中, 所以要是懒得记的话, 就记住这一种方法就好了Object.prototype.toString.call(data) === ‘[object Array]’;2.es5, 经常用的方法, 简单Array.isArray(data)注: 不可以用typeof 和 instanceof, 原因是数组检查是否是obj...

2020-04-25 12:33:56 188

原创 递归算法,真香

作为一名小白前端,只有在找工作的时候,学习了一下递归算法怎么写,在实际项目中,总觉得递归算法好难,不愿意用,遇到需要递归的情况,我就来几个判断就完事了,直到最近一个项目,需求经常变化,代码频繁改动,实在是被烦到来学习一下递归算法, 发现,真香!!!递归算法解决问题的特点:在过程或函数里调用自身。必须有一个明确的递归结束条件,称为递归出口。递归算法解题通常显得很简洁,但递归算法解题的运行效...

2020-03-08 17:50:20 145

原创 在js中怎么判断一个对象为空

作为一名小白用户的第一篇博客,就是最近在编程中遇到的问题,怎么判断一个对象是空对象,我们知道判断一个数组为空数组,直接可以根据数组的长度为0来进行判断,而判断对象为空,则没有直接的属性可以提供进行判断,那么下面介绍几种方法来判断对象为空对象。1.将json对象转化为json字符串,判断字符串是否为“{}”let obj = {}if(JSON.stringify(obj) == ’{}‘){...

2019-09-30 15:58:22 418

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除