摘要: 代码参照 React 16.13.1 什么是 Diff 在render阶段的beginWork函数中,会将上次更新产生的 Fiber 节点与本次更新的 JSX 对象(对应ClassComponent的this.render方法返回值,或者FunctionComponent执行的返回值)进行比较。根据 阅读全文
posted @ 2023-12-08 18:04 柯基与佩奇 阅读(946) 评论(0) 推荐(0)
摘要: Diff 更新算法 由于目前Vue3对于性能的优化做了很多的处理,所以其在更新时并不会对所有的节点都进行diff更新。目前会进行diff更新的有以下两种情况: v-for容器节点 自写的render()函数 还有一种特殊情况会进行无diff的按序更新,这种更新是全替换模式,非常耗时: 无key值的v 阅读全文
posted @ 2023-12-08 17:54 柯基与佩奇 阅读(939) 评论(1) 推荐(2)
摘要: 所谓 diff 算法,就是通过比对新旧两个虚拟节点不一样的地方,针对那些不一样的地方进行新增或更新或删除操作。接下来详细介绍节点更新的过程。 首先进行静态节点处理,判断新旧两个虚拟节点是否是静态节点,如果是,就不需要进行更新操作,可以直接跳过更新比对的过程 。 再更新处理新老节点的属性,获取新老节点 阅读全文
posted @ 2023-12-08 17:46 柯基与佩奇 阅读(680) 评论(0) 推荐(1)
摘要: 在 Vue3 中,有许多与响应式相关的函数,例如 toRef、toRefs、isRef、unref 等等。合理地使用这些函数可以在实际开发中大大提高效率。本文将详细介绍这些函数的用法,让在实际开发中知道应该使用哪些 API 并能够熟练地回答面试官的相关问题。 ref() 大家对于 ref 这个 AP 阅读全文
posted @ 2023-12-08 17:20 柯基与佩奇 阅读(432) 评论(0) 推荐(0)
摘要: 1.需求背景 (1)在一般的管理系统或者 H5 应用中,需要交互反馈提醒。这种交互反馈,往往需要在多个组件中使用到,那么是否可以将其抽离出来,封装一个组件呢?答案是肯定的,可以根据日常的业务,对消息提醒功能进行封装,那么问题来了,如何实现一次注册,多次使用呢,关键时刻,vue.extend API 阅读全文
posted @ 2023-12-08 17:10 柯基与佩奇 阅读(1044) 评论(0) 推荐(0)