lybenson

嘻嘻2332

Vue响应式原理

vue-reactive

Vue响应式原理依赖于Object.defineProperty,正是由于这个原因才使得Vue不兼容IE8及以下浏览器的原因。 Object.defineProperty Object.defineProperty(obj, prop, descriptor) obj 要在其上定义属性的对象 prop 要定义或修改的属性的名称 descriptor 将被定义或修改的属性...

Vue 虚拟node

virtual-node

在 Vue生命周期源码解析 中,我们介绍了Vue的挂载过程,其中在 src/core/instance/lifecycle.js 文件下的mountComponent 中调用了 vm._render() ,该方法即是用来生成虚拟DOM,在生成虚拟DOM之前,先来看下VNode的定义 // src/core/vdom/vnode.js export default class VNode ...

Vue生命周期源码解析

vue-source-code-explain

vue 目录结构 compiler:模板编译器 codegen - 根据AST生成render函数 directives - 生成render函数之前需要处理的指令 parser - 模板解析 core:核心代码 components - 全局组件, 目前只有keep-alive组件 ...

如何实现一个Promise

简介 TODO: 简单介绍Promise/A+规范 实现 在实现Promise之前,先来看看Promise的简单调用 示例1: new Promise(function (resolve) { resolve() }).then(function (v) { console.log(v) }) 针对上述代码,可以很简单的给出下面的实现 function Promise...

前端数据流处理

前端数据流处理

Blob对象 一个Blob对象就是一个包含有只读原始数据的类文件对象。Blob对象中的数据并不一定得是JavaScript中的原生形式。File接口基于Blob,继承了Blob的功能,并且扩展支持了用户计算机上的本地文件 Blob对象可以看做是存放二进制数据的容器,此外还可以通过Blob设置二进制数据的MIME类型。 创建Blob var blob = new Blob(dat...

数组遍历方式

let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] let obj = { a: 1, b: 2 } for 循环 for(let i = 0; i < arr.length; i++){ // TODO } for…in for…in 用于对数组或对象的可枚举属性进行遍历操作 for(let num in arr){...