Vue 中 Observer-Dep-Watcher 三者的关系

Vue 的特点之一就是双向绑定,即“数据(data)“和”视图(view)”绑定,当数据变化时会驱动视图更新,视图变化时也会驱动数据更新。本文从 Vue 源码出发,弄清 Observer-Dep-Watcher 三者之间的关系,这对理解双向绑定这个概念非常有意义。

More

Vue 实例创建过程

基于 Vue 的应用往往开始于新建一个 Vue 实例,将一个 options 配置对象传给 Vue 构造函数即可完成实例的创建,本文以一个小例子来梳理一下 Vue 实例的创建过程。

More

Vue 2.x 全局 api 详解

vue 官网上专门列出了全局 api 供大家参考,这些 api 我看了不下几遍,但是对其用法始终没能理解得很透彻。于是抽空了解了一下 vue 2.4.0 的源码,这里对这些全局 api 做一些尽可能详细的注解。

More

jQuery 基础

用过 jQuery 的人应该都有感受,它比原生 JavaScript 容易得多,不得不好奇它是怎么做到的,于是决定打开 jQuery 源码一探究竟。本文针对的是 jQuery 2.0.3 版本源码,对其中一些重要又基本的概念进行梳理,有时间的话,后面会陆续对各个具体的功能模块进行分析。

More

为什么函数形参设为 undefined

JavaScript 中函数形参的个数和实参个数并不要求相等。函数的 length 属性返回形参个数,在函数内部 argument.length 返回实参个数。形参个数小于实参个数是允许的,不会报错;形参个数大于实参个数时,被省略的参数值为 undefined。

More

前端构建工具 grunt

同样作为前端构建工具,grunt 和 gulp 的功能很类似,都可以帮助我们开发者进行代码检查、编译、单元测试、文件合并、压缩等任务。它们主要区别在于,grunt 在多个处理流程过程中会有多次 I/O 操作,并生成多个中间文件;而 gulp 只需要一次 I/O 操作,随后都是文件流式处理,效率较高。不过,grunt 生态系统非常庞大,有很多插件可供选择,jQuery、Bootstrap 等优秀项目都在使用 grunt,所以还是很有必要学习 grunt 的。

More