fuRan's Code 皆無は真実、万事が許す。
Posts with the tag 前端:

Js里的调用栈(call stack)、消息队列(message queue) 、工作队列(job queue)、process.nextTick()、setImmediate()

消息队列(message queue)里的任务也被称作宏任务(macrotask)

I/O操作、fetch、event(onClick)、渲染任务都是宏任务

工作队列(job queue)里的任务也被称作微任务(microtask)

MutationObserver、和Promise属于微任务

process.nextTick()setImmediate()是node独有的插队方法

【柳比歇夫时间管理】 前端篇

项目地址

项目源码在这github,欢迎clone下来配合食用

项目地图

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$ tree -I js-sdk
.
|-- Loading.tsx             # 按需加载的Loading 页
|-- app.ts                  # 重载dva的逻辑
|-- components
|   `-- TagMgt              
|       |-- TagExec.tsx     # 新增、编辑的弹窗执行者
|       `-- index.tsx       # 标签管理
|-- global.less             # 全局样式
|-- http                    
|   |-- host.ts             # 多host控制
|   |-- index.ts            # http模块 axios的二次封装 
|   `-- proxyCfg.ts         # 参照webpack proxy定的url转发
|-- layouts
|   `-- index.tsx           # 布局主文件
|-- models                  # VM层 dva是对redux redux-saga的封装,把controller和model放一起统一管理
|   |-- global.ts           # 全局
|   |-- record.ts           # 记录
|   |-- tag.ts              # 标签
|   `-- user.ts             # 用户
|-- pages
|   |-- record              
|   |   `-- index.tsx       # 记录页
|   |-- statistic
|   |   `-- index.tsx       # 统计页
|   `-- user
|       `-- index.tsx       # 用户页
|-- theme
|   `-- index.ts            # 全局主题常量
`-- utils                   # 通用工具
    `-- type.ts             

使用的是umi的架构体系,官方文档已经写的非常通俗易懂了,本文就不再赘述。
本文主要讲http模块executer组件的设计思路和使用。