浅谈虚拟DOM、diff算法 发表于 2019-05-19 | 分类于 React React首先在内存中对整个结构进行组装,然后把这个结构转换成实际的DOM节点插入到浏览器DOM中。render执行的结果并不是真正的DOM节点,而是轻量的JS对象。React的虚拟对象使两个DOM树对比起来更快,具有批处理和高效Diff算法,找到他们的变化,计算更新DOM所需要做的最小的变更 虚拟 ... 阅读全文 »
React生命周期-16.8新增 发表于 2019-05-19 | 分类于 React 组件的生命周期三个状态(挂载 更新 销毁) Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 旧的生命周期处理函数 render()render() 方法是 class 组件中唯一必须实现的方法。 当 render 被调用时,它会检 ... 阅读全文 »
Hooks-React16.8 发表于 2019-05-19 | 分类于 React Hooks16.8新增,Hook 是一些可以让你在函数组件里钩入React state、生命周期等特性的函数,它们名字通常都以 use 开始。Hook 不能在 class 组件中使用 Hook相比class解决的问题:不相关逻辑的分离、相关逻辑的合并 class 中生命周期函数中经常包含不相关的逻 ... 阅读全文 »
async/await 发表于 2019-05-19 | 分类于 ES6 asyncasync是generater函数的语法糖,就是将 Generator 函数的星号*替换成async,将yield替换成await async对generater函数的改进 内置执行器:不需要调用next(),就会自动执行 更好的语义:async表示函数里有异步操作,await表示紧跟在后 ... 阅读全文 »
let、const到底有什么特点 发表于 2019-05-19 | 分类于 ES6 let特点 生成块级作用域 不存在变量提升(暂时性死区) 同一个作用域,不允许重复声明变量 可以不初始化 let声明的变量不是全局对象window的属性(var 是) 形如for(let i…)的循环,每次迭代都为x创建新的绑定 如果变量i是var命令声明的,在全局范围内都有效,全局只有一个变量i ... 阅读全文 »
Generater遍历器对象生成函数 发表于 2019-05-19 | 分类于 ES6 Generator 遍历器对象生成函数形式上,Generator 函数是一个普通函数,但是有两个特征 function关键字与函数名之间有一个星号,function与*的位置没有规定 函数体内部使用yield表达式,定义不同的内部状态 1234function* foo(x, y) { ... 阅读全文 »
Iterator遍历器、for...of 发表于 2019-05-19 | 分类于 ES6 Iterator 遍历器遍历器Iterater是一种接口,为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署 Iterator 接口,就可以完成遍历操作 Iterator 的遍历过程: 创建一个指针对象,指向当前数据结构的起始位置。遍历器对象本质上,就是一个指针对象。 每一次调用next ... 阅读全文 »
ES6之Set Map、解决深拷贝引用问题的利器 发表于 2019-05-19 | 分类于 ES6 Set 不重复的数组ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。也是原生默认有Iterator接口的数据结构123const set= new Set()[...set] Set函数可以接受一个数组(或者具有 iterable 接口的其他数据结构)作为参数 ... 阅读全文 »
ES6之Promise 发表于 2019-05-19 | 分类于 ES6 接下来我将会从下面几个方面谈及Promise: Promise解决了什么 Promise使用、方法 Promise在事件循环中的执行过程 Promise的串行、并行 手写Promise Promise简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,P ... 阅读全文 »
浏览器的渲染机制 发表于 2019-05-19 | 分类于 JS 输入url发生了什么 浏览器查找当前URL是否存在缓存,并比较缓存是否过期 浏览器会先根据这个URL查看浏览器缓存-系统缓存-路由器缓存,若缓存中有,直接Http连接 DNS解析域名对应的IP地址 建立TCP连接(三次握手) 发送HTTP请求 服务器处理请求,并返回HTTP报文 浏览器解析渲染页 ... 阅读全文 »