Vue源码解析17-v-if的处理 发表于 2018-11-17 | parseprocessIf用于处理v-if: 123456789101112131415161718function processIf(el) { const exp = getAndRemoveAttr(el, 'v-if'); // 获取节点上的v-if属性值 if (exp) ... 阅读全文 »
Vue源码解析16-v-for的处理 发表于 2018-11-17 | parseprocessFor用于处理v-for指令: 12345678910export function processFor(el: ASTElement) { let exp; // 从attrsMap中获取key为‘v-for’的属性值,例如 "(value,key,inde ... 阅读全文 »
Vue源码解析15-自定义指令 发表于 2018-11-17 | Vue可以自定义局部和全局指令,具体用法参考官网即可,这篇文章讲述其内部实现。 parse在上篇指令概述中已有大概说到,在processAttrs函数中会处理自定义指令,这里详细说下。 123456789101112131415161718192021222324252627282930313233 ... 阅读全文 »
Vue源码解析14-指令处理概述 发表于 2018-11-17 | 接下来的几篇文章焦点放到Vue的指令处理上,我们知道Vue内置了一些指令,比如常用的v-for、v-if等。这篇文章会先从整体上讲述对指令的处理,不会涉及具体指令的细节。 parse阶段依然是从parse阶段开始,在src/compiler/parser/index.js中,会调用各个指令的proc ... 阅读全文 »
Vue源码解析13-事件处理 发表于 2018-11-15 | 到这里为止,Vue 的主要逻辑就已经全部介绍完了。接下来的文章会从其他角度来解析,如事件处理、各个指令的处理等等。先从事件处理开始。 Vue的事件处理分为两类:DOM事件和自定义事件,二者走的是完全不同的处理流程,不过在处理子组件时,会联系到一起,后面会说到。 DOM 事件在模板中通过@或v-on指 ... 阅读全文 »