最新文章

标签:
全部
网络协议
随便写写
JavaScript
Vue
源码阅读
React
Redux

数组的push、unshift、pop、shift方法实现

6 个月前
尾部添加(push) `push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。` 从解释中可以看出,push方法只要将要添加的元素依次放到数组的最后即可,不会改变原有数组元素的索引。所以循环参数列表,将新元素依次放到数组的最后即可。 ```javascript Arrayprototypepush function(value) for (var i

理解前端自动化测试TDD + BDD

6 个月前
前言 在日常的开发中,整天赶需求的我们好像没有时间顾及自动化测试,尤其是在敏捷开发的时候。但其实自动化测试可以帮助我们提高代码和功能的健壮程度,大幅减少可能出现的bug。 尤其是在复杂系统中,自动化测试的作用不容忽视。本篇文章是我自己的学习记录,使用测试框架jest和前端框架React来简单梳理的自动化测试。 日常开发通常涉及到业务代码的开发以及函数、组件库的开发。针对这两方面的自动化测试,

一个HTTP请求的曲折经历

6 个月前
写在前面 作为程序员的我们每天都在和网络请求打交道,而前端程序员接触的最多的就是HTTP请求。平时工作中,处理网络请求之类的操作是最多的了。但是一个请求从客户端发出到被服务端处理、再回送响应,再被客户端接收这一个闭环的底层细节可能并没有深究过,本篇文章是我的一篇读书笔记,总结出来恰好涉及到了这一过程,分享出来希望可以对大家有所启发。 文中某些点如果表述有误,欢迎指出来,不胜感激。 从一个经

竞态请求的Redux中间件解决方案

1 年前
这个问题来源于一次无意中在项目里发现的bug,场景是组件会在切换项目后重新渲染,每次重渲染后,组件挂载完毕会请求对应的当前项目的数据,存到store中展示到页面上。 但网络请求时间的长短是难以预测的,这就引发了一个问题: 切换到B项目,请求发出了但还没回来,这时候再切换到A项目。那么现在同时存在两个请求,先前的请求B和新的请求A。 请求A的速度比较快,马上成功了,将数据存到store中,展示

JS数组Reduce方法详解

1 年前
概述 一直以来都在函数式编程的大门之外徘徊,要入门的话首先得熟悉各种高阶函数,数组的reduce方法就是其中之一。 reduce方法将会对数组元素从左到右依次执行reducer函数,然后返回一个累计的值。举个形象的例子:你要组装一台电脑,买了主板、CPU、显卡、内存、硬盘、电源这些零件是组装电脑的必要条件。 装的过程可以简单概括为拆掉每个零件的包装,再装到一起。类比一下reduce函数就可

Promise原理解析以及实现

1 年前
写在前面 本篇文章将会带大家从分解promise入手,一步步实现一个promise。但阅读之前需要比较熟练地了解了解用法,结合用法看文章可能更容易理解。 结构 先看一下简单的用法。 ``` const promise new Promise((resolve reject) setTimeout(() resolve("success") ) ) then(

带着问题看React-Redux源码

1 年前
欢迎关注公众号: 一口一个前端,不定期分享我所理解的前端知识 写在前面 我在读ReactRedux源码的过程中,很自然的要去网上找一些参考文章,但发现这些文章基本都没有讲的很透彻, 很多时候就是平铺直叙把API挨个讲一下,而且只讲某一行代码是做什么的,却没有结合应用场景和用法解释清楚为什么这么做,加上源码本身又很抽象, 函数间的调用关系非常不好梳理清楚,最终结果就是越看越懵。我这次将尝试换一种解

今天,我明白了JS事件循环机制

1 年前
写在前面 js是一门单线程的编程语言,也就是说js在处理任务的时候,所有任务只能在一个线程上排队被执行,那如果某一个任务耗时比较长呢?总不能等到它执行结束再去执行下一个。 所以在线程之内,又被分为了两个队列: 同步任务队列 异步任务队列 举个例子来说:比如你去银行办理业务,都需要领号排队。银行柜员一个个办理业务,这时这个柜员就相当于一个js线程,客户排的队就相当于同步任务队列,每个人对于柜

WebSocket其实没那么难

1 年前
写在前面 webSocket是一项可以让服务器将数据主动推送给客户端的技术。前几天写了一个日志功能,日志数据需要实时更新。正好项目中有封装好的WebSocket组件,且接口支持webSocket,就用它实现了。也是第一次用,简单研究了一下,分享出来。 文章示例代码:httpsgithubcomneroneroffywebSocketDemo 什么是WebSocket 首先需要明白webSo

函数的防抖和节流是个啥???

1 年前
曾经面试时候被问到过这个,年少的我一脸无知。。。 后来工作中遇到了一个场景:输入名称的同时去服务器校验名称是否重复,但发现之前的代码竟然都没做限制,输入一次发一次请求。简直忍不了,就在项目的utils里加上了防抖函数。 正好做一个总结,加深印象。 函数防抖和节流,都是控制事件触发频率的方法。应用场景有很多,输入框持续输入,将输入内容远程校验、多次触发点击事件、onScroll等等。 为了说明