
vue
文章平均质量分 89
Tand.
这个作者很懒,什么都没留下…
展开
-
vue.nextTick
1.官方文档说明:那么为什么nextTick方法会在下次DOM更新循环结束之后执行延迟回调呢?首先我们需要知道下面几个问题:1.如何进行更新DOM:这里首先要提醒的是,如果是异步任务,且不是宏任务的几种,如果环境支持微任务,则默认是微任务,会被放入微任务队列。异步更新DOM默认也是微任务。可能你还没有注意到,Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发,只会被推入到队列原创 2022-01-11 11:10:31 · 989 阅读 · 0 评论 -
Patch:虚拟DOM最核心的部分--如何对比虚拟DOM树,以及如果生成真实DOM
虚拟DOM最核心的部分是patch,它可以将vnode渲染成真实DOM.patch也可以叫做patching算法,通过它渲染真实DOM时,并不会暴力覆盖原有DOM.而是比对新旧俩个vnode之间有哪些不同,然后根据对比结果找出需要更新的节点进行更新.这点从名字就可以看出,patch本身就有补丁,修补等意思.其实际作用是在现有DOM上进行修改来实现更新视图的目的.之所以要这么做,主要是因为DOM操作的执行速度远不如JavaScript的运算速度快。因此,把大量的DOM操作搬运到JavaScript 中,.原创 2021-12-29 18:20:53 · 907 阅读 · 0 评论 -
虚拟DOM的VNode
摘自:深入浅出vue.js在虚拟DOM中, VNode是比较重要的知识点,那么下面我们将介绍VNode.1.什么是VNode在Vue,js中存在一个VNode类,使用它可以实例化不同类型的vnode 实例,而不同类型的vnode实例各自表示不同类型的DOM元素。例如,DOM元素有元素节点、文本节点和注释节点等,vnode 实例也会对应着有元素节点、文本节点和注释节点等。VNode类的代码如下:从上面的代码可以看出,vnode只是一个名字,本质上其实是JavaScript中一个普通的对象,是原创 2021-12-29 15:48:57 · 548 阅读 · 0 评论 -
虚拟DOM
1.什么是虚拟DOM虚拟DOM是随时代发展而诞生的产物。在web早期,页面的交互效果比现在简单得多,没有复杂的状态需要管理,也不需要频繁地操作DOM,使用jQuery来开发就可以满足我们的需求。但是随着时代的发展,页面上的功能越来越多,需要实现的需求也越来越复杂,程序中需要维护的状态也越来越多,DOM操作也越来越频繁,此时我们会发现如果像之前那样使用jQuery来开发页面,那么代码会有很多操作DOM,程序中的状态也很难管理,代码逻辑也会很混乱。这其实就是命令式操作DOM的问题,虽然简单易用,但业务复杂原创 2021-12-29 11:51:49 · 1246 阅读 · 0 评论 -
vm.$delete的原理
vm.$delete的作用是删除数据中的某个属性。由于Vue.js的变化侦测是使用object.defineProperty实现的,所以如果数据是使用delete关键字删除的,那么无法发现数据发生了变化。为了解决这个问题,vue.js提供了vm.$delete方法来删除数据中的某个属性,并且此时vue.js可以侦测到数据发生了变化。一:用法参考:深入响应式原理二:实现原理vm.$delete方法是为了解决变化侦测的缺陷。在ES6之前,javascript并没有办法侦测到一个属性在object原创 2021-12-28 18:09:07 · 515 阅读 · 0 评论 -
vm.$watch的内部原理
在介绍内部原理前,先简单回顾一下它的用法:1.1 用法:vm.$watch(expOrFn, callback, [options])参数分析:{String| Function} expOrFn{Function | Object} callback{Object} [options] =>①{boolean} deep ②{boolean} immediate返回值:{Function} unwatch用法:用于观察一个表达式或computed函数在vue.js实例上的变化。.原创 2021-12-24 15:02:43 · 772 阅读 · 0 评论