• Object.defineProperty()的使用
    2019-05-25

    Object.defineProperty(),它的作用是可以通过该API直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。Vue框架内部大量使用了此API为对象定义属性,其响应式原理也是通过此API自定义setter与getter而完成的。

  • Vue的全局API【Vue源码学习】
    2019-04-17

    Vue框架提供了很多全局的API、例如Vue.extend()Vue.nextTick()Vue.component()Vue.filter()Vue.use()等等,通过这些API我们可以轻松的完成一些工作。这篇文章我们通过源码方式去理解他们的实现原理。

  • Vue的mergeOptions函数分析-下【Vue源码学习】
    2019-03-29

    上篇文章分析了mergeOptions函数的主要逻辑,最后知道是分别遍历俩个选项对象都去执行mergeField函数,其中mergeField函数其实是根据不同的key值来获取到相应的合并策略,从而执行真正的合并。接下来我们主要分析下Vue针对不同的内部选项实施的合并策略

  • Vue的mergeOptions函数分析-上【Vue源码学习】
    2019-03-25

    Vue的mergeOptions函数的主要作用是用于合并选项(将俩个选项对象合并成一个),它是用于实例化和继承的核心函数。这也是为什么我们要去分析它。并且与函数相关的选项合并策略也都在一个文件里,定义在/src/core/util/options.js文件中。

  • JavaScript中的防抖函数与节流函数

    JS中的防抖(debouncing)与节流(throttling)是用来控制一个函数在一定时间内执行的次数(频次),他俩个用处相近、但又不完全相同。

  • 事件循环(the Event Loop)、宏任务(macrotask)、微任务(microtask)
    2019-03-02

    我们都知道JavaScript是单线程的语言,它不像大多数语言可以开启多线程,当处理一些阻塞并且很慢的操作时,它可以通过多线程使操作变成异步(例如读取文件等IO操作)。其实JavaScript也有同步异步的区分。首先来看一下同步与异步的区别