人人都能懂的Vue源码系列—09—initEvents

2018-05-21
阅读 6 分钟
7k
上篇文章中,我们主要讲了initLiftcycle方法,它的作用是初始化vm实例中和生命周期相关的属性。今天为大家介绍另一个方法——initEvents。从这个方法的名称来看,我们知道它是和事件相关的方法,具体怎么相关,我们先来看源码。

人人都能懂的Vue源码系列—08—initLifecycle

2018-05-14
阅读 3 分钟
4.8k
上篇文章,我们讲了vm._renderProxy相关的内容。主要是通过Proxy为我们vm属性添加一些自定义的行为。今天我们回到init方法中,为大家讲解initLifecycle。initLifeCycle方法用来初始化一些生命周期相关的属性,以及为parent,child等属性赋值,来看源码。

人人都能懂的Vue源码系列—07—initProxy

2018-05-11
阅读 4 分钟
4.2k
前几篇文章中,我们主要讲了merge options的一些操作。今天我们回到init方法往下讲。 {代码...} 上面的代码逻辑很简单,主要就是为Vue实例的_renderProxy属性赋值。不同的代码运行环境赋值的结果不同。 当前环境是开发环境,则调用initProxy方法 如果不是开发环境,则vue实例的_renderProxy属性指向vue实例本身。 initPr...

人人都能懂的Vue源码系列—06—mergeOptions-下

2018-05-05
阅读 7 分钟
4.8k
上篇文章,我们讲到了mergeOptions的部分实现,今天接着前面的部分讲解,来看代码,如果大家觉得看讲解枯燥可以直接翻到本文的最后看mergeOptions的整个流程图。

人人都能懂的Vue源码系列—05—mergeOptions-上

2018-05-03
阅读 6 分钟
4.7k
前几篇文章中我们讲到了resolveConstructorOptions,它的主要功能是解析当前实例构造函数上的options,不太明白的同学们可以看本系列的前几篇文章。在解析完其构造函数上的options之后,需要把构造函数上的options和实例化时传入的options进行合并操作并生成一个新的options。这个合并操作就是今天要讲的mergeOptions。...

人人都能懂的Vue源码系列—04—resolveConstructorOptions函数-下

2018-04-26
阅读 4 分钟
4.5k
上一篇文章中说道,resolveConstructorOptions函数要分两种情况进行说明,第一种是Ctor为基础构造器的情况,这个已经向大家介绍过了,今天这篇文章主要介绍第二种情况,Ctor是Vue.extend创建的"子类"。

人人都能懂的Vue源码系列—03—resolveConstructorOptions函数-上

2018-04-25
阅读 4 分钟
5.5k
mergeOptions方法,我们之后的博文再来做详细介绍。今天主要研究resolveConstructorOptions方法,从字面意思来看,这个方法是来解析constructor上的options属性的。我们来看源码。

人人都能懂的Vue源码系列—02—Vue构造函数

2018-04-19
阅读 4 分钟
6.2k
上篇博文中说到了Vue源码的目录结构是什么样的,每个目录的作用我们应该也有所了解。我们知道core/instance目录主要是用来实例化Vue对象,所以我们在这个目录下面去寻找Vue构造函数。果然我们找到了Vue的构造函数定义。

人人都能懂的Vue源码系列—01—Vue源码目录结构

2018-04-11
阅读 1 分钟
5.7k
上图就是关于Vue源码整体目录结构的介绍了,我们熟悉每个模块具体的功能之后,对我们之后继续研究源码是很有帮助的。下次谈论的主题是Vue的构造函数,当new Vue实例的时候,会发生什么呢?生成的Vue实例又有哪些属性和方法呢?我们下篇文章会进行详细的说明。人人都能懂的Vue源码系列文章将会详细的介绍Vue源码的方方面...

翻译webpack3.5.5 - code splitting - 上半部分

2017-08-24
阅读 4 分钟
2.9k
对于大型web app来说,如果把所有的文件都打包到一个文件中是非常低效的,特别是当一些代码块只在某些特定的条件下被调用。webpack可以让你的代码库分割成不同的块(chucks),仅仅在需要的时候再加载。其他的一些打包工具叫它们图层(layers), 卷(rollups) 或者 片段(fragments),这些特性被叫做代码分离(code splitting)...

new Array(1) 和 [undefined] 一样嘛?

2017-08-22
阅读 2 分钟
2.3k
大家觉得这段代码的输出结果是多少呢?很多小伙伴会觉得结果一定是这样的[{name: 'Chris xiong'}, {name: 'Chris xiong'}, {name: 'Chris xiong'}]这么想的同学请把上面那段代码放进控制台里输出一下。你会发现,结果不是你想象的那样。上述这段代码的执行结果是(3) [undefined × 3]。大家一定会感到困惑,为什么输出的...

javascript作用域的有序性

2017-07-29
阅读 2 分钟
1.8k
我们知道,变量对于程序来说是至关重要的,如果没有变量存储和访问值,整个程序会受到限制。那么问题来了,既然程序这么需要变量,那么它到底是怎么样去存储变量和使用变量的呢?存储变量这里暂且不提,到时候会有专门一篇博客来说明这个问题。我们这次说的主要就是如何去使用变量。这就要牵扯到我们今天的主题作用域上...

浅析javascript调用栈

2017-07-26
阅读 2 分钟
15k
代码在运行过程中,会有一个叫做调用栈(call stack)的概念。调用栈是一种栈结构,它用来存储计算机程序执行时候其活跃子程序的信息。(比如什么函数正在执行,什么函数正在被这个函数调用等等信息)。调用栈是解析器的一种机制。call stack

初探函数节流和函数防抖—以项目为例(更新es6语法)

2017-06-06
阅读 2 分钟
5.7k
最近在做一些小的练手代码的时候,碰到了一个很常见的问题,当在搜索框中进行搜索的时候,如果快速输入很多字符的话,搜索框的监听回调函数会执行很多次,如果回调业务较复杂的话,可能会导致页面运行缓慢甚至是奔溃,那么我们如何解决这个问题呢,让输入框在不在输入的情况下执行回调,或者每间隔一段时间执行一次回调...