自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手写简版eventBus

class MyEventBus{ constructor() { this.events = {}; } on(eventName, callBack){ if(!this.events[eventName]){ this.events[eventName] = []; } this.events[eventName].push(callBack); } emit(eventName, ...args){ if(!this.eve

2021-02-09 18:37:56 195

原创 手写ajax

function ajax(options = {}){ return new Promise((resolve, reject) => { const { method, data, url } = options; const xhr = new XMLHttpRequest(); xhr.onreadystatechange = () => { if(xhr.readyState == 4){ xhr.s..

2021-02-09 16:39:30 157

原创 手写promise

const FUlFILLED = 'fulfilled';const REJECTED = 'rejected'class MyPromise { constructor(exec) { this.status = PENDING; this.value = undefined; this.reason = undefined; this.resolvedCallBack = []; this.rejectedCallBack = []; let

2021-01-27 15:49:22 190

原创 如何手写react-redux中的connect函数

在react学习中,redux是比较难理解的一个点,今天我们就深入了解一下如何用redux来实现react-redux中connect函数从而便于理解和使用react-redux。1.什么是redux官方解释:redux 是 js 应用的可预测状态的容器。 可以理解为全局数据状态管理工具(状态管理机),用来做组件通信等。2.为什么使用redux当没有使用redux时兄弟组件间传值将很麻烦,代码很复杂冗余。使用redux定义全局单一的数据Store,可以自定义Store里面存放哪些数据,整个数据结构

2020-11-24 22:36:11 491

原创 想学分布式?来看看gRPC!

最近接触到了微前端的项目,其中用到了没接触过的gRPC,这里进行一下总结。接触gRPC前我们先了解一下RPC:1.什么是RPC?RPC( Remote Procedure Call )意为本地过程调用。我们先来看看本地函数调用function add(a, b){ return a+b;}console.log(add(1, 2));这其实就是非常普通的本地函数调用,因为在同一个地址空间。但是现在我们希望将系统改成分布式,把能共享的功能全部抽离出来,比如将上面的add函数放到一个单独的服

2020-11-19 19:52:52 330 2

原创 Vue响应式原理之Object.defineProperty,面试手写,通俗易懂好兄弟快学起来

Vue响应式原理之Object.defineProperty,通俗易懂好兄弟快学起来首先是对对象的监听,话不多说先看代码let obj = { a: { b: 1, c: 2 }, d: 4 } observe(obj) obj.a.b = 3 //直接修改b的值 监听成功 obj.a = 4 //把a赋值成基本类型 监听成功 obj.d = 5 //直接修改d的值 监听成功 obj.d = { //把d修改成对象 监听

2020-10-12 21:46:59 447 2

原创 js实现快速排序的两种方法,附讲解

本文提供两种JavaScript实现快排方式,第一种为阮一峰老师所写原文地址:http://www.ruanyifeng.com/blog/2011/04/quicksort_in_javascript.html第二种为个人看到讲解比较不错的C++实现(已修改为JavaScript实现)原文地址:http://blog.youkuaiyun.com/morewindows/article/details/6684558 ​ "快速排序"的思想很简单,整个排序过程只需要三步:​ (1)在数据集之

2020-09-30 17:43:54 2723

原创 ACM之路 poj2367 Genealogical tree(拓扑排序,带注释)

poj2367 Genealogical tree 输入一个数N代表人数,然后N行,第i行输入的是第i个人的后代,以0结尾,通过N行的输入,让你确定年龄的从大到小排序 题解:朴素拓扑排序,in数组的值代表输入一个人的次数,例如2为1的后代,2又为3的后代,in[2]=2,edge数组保存一个人的后代,当第i个人的in[i]为0时,代表此时他是最年长的,加入队列,然后循环遍历edge[i],把他所指向的后代的in[]--,直到队列为空,具体看代码#include <iostream>#i

2020-09-29 23:20:48 257

原创 ACM之路 hdu2612 Find a way(简单BFS,带注释)

hdu2612 Find a way Y和M要去KFC见面,地图上有很多个KFC,求两个人去最近的KFC所走距离的和,KFC也是可以走的 题解:数据不大,BFS直接搜出两个人走到每个点的距离保存下来,最后计算去每个KFC所走距离和最小值即可,具体看代码#include <iostream>#include <cstring>#include <queue>using namespace std;const int maxn=500;char pic[ma

2020-09-27 17:10:37 269

原创 ACM之路 hdu1241 Oil Deposits(简单DFS,带注释)

头一次有想写博客的想法,回顾一下以前acm的经典老题hdu1241 Oil Deposits 输入一个字符矩阵,统计字符'@'组成多少个八连块(如果两个字符'@'所在的格子相邻,即横竖以及对角方向,就称它们属于一个八连块) 题解: DFS入门题,题解看注释应该很明白#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <m

2020-09-24 22:22:46 1349 2

空空如也

空空如也

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

TA关注的人

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