摘要: 概述 compile 编译可以分成 parse、optimize 与 generate 三个阶段,最终需要得到 render function。这部分内容不算 Vue.js 的响应式核心,只是用来编译的,笔者认为在精力有限的情况下不需要追究其全部的实现细节,能够把握如何解析的大致流程即可 举例 入口 阅读全文
posted @ 2020-03-25 11:24 Ever-Lose 阅读(687) 评论(0) 推荐(0) 编辑
摘要: 周所周知,Vue在2.0版本中去除了$broadcast方法以及$dispatch方法,最近在学习饿了么的 "Element" 时重新实现了这两种方法,并以minix的方式引入。 看一下 "源代码" 其实这里的broadcast与dispatch实现了一个定向的多层级父子组件间的事件广播及事件派发功 阅读全文
posted @ 2020-03-25 11:22 Ever-Lose 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 场景 vue 版本 2.3.0 早上起来新建个项目写单测的时候发现报出一个错误 runtime only ? 这是什么情况,我只是在单测代码里构建了一个 vm 对象啊,写入了 import Vue from 'vue'; let vm = new Vue({ template: ` {{ text 阅读全文
posted @ 2020-03-25 11:21 Ever-Lose 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 提问 Vue 2.x 里劫持对象仍用 Object.defineProperty() 方法,受此方法的限制,Vue 无法检测到直接数组更改(mobx 旧版本也有过这毛病,他对数组0到999项的内容都现实地 Object.defineProperty 监听了),和对象属性的添加或删除。 举个例子,运行 阅读全文
posted @ 2020-03-25 11:20 Ever-Lose 阅读(459) 评论(0) 推荐(0) 编辑
摘要: 背景 很多人对 process.nextTick() 有个误解,认为它也是前端常用的微任务,但其实不是。 这个方法只是在 Node 中存在,并且是个 Node 进入事件轮询的下一阶段时就会触发的一个神奇的方法。 那么问题来了,Vue 中也实现过一个 this.$nextTick(),这是怎么做的呢? 阅读全文
posted @ 2020-03-25 10:47 Ever-Lose 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 面试时被问到,那就趁机梳理一下 vue 的演进吧 vue2 比 vue1 的改进 详见 "从Vue 1.x 迁移" 生命周期 比如说 beforeCompile 移除, 使用 created 替代,compiled 移除,使用 mounted 替换等 语法 新数组语法 (value, index) 阅读全文
posted @ 2020-03-25 10:21 Ever-Lose 阅读(8529) 评论(0) 推荐(0) 编辑