- 博客(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关注的人