08 2021 档案

摘要:vue 改写了数组的七个方法:push、pop、shift、unshift、splice、sort、reverse。使数组改变的时候能够触发响应式,先把原来的 Array.prototype 的方法备份一份,再进行重写。 vue 的数组响应式是如何实现的? 以 Array.prototype 为原型 阅读全文
posted @ 2021-08-30 07:07 我就尝一口 阅读(1478) 评论(0) 推荐(0) 编辑
摘要:官网的响应式原理图解: 三种框架的数据变化类型: Object.defineProperty() 方法: Object.defineReactive() 方法: let obj = {}; function defineReactive(data, key, val) { Object.define 阅读全文
posted @ 2021-08-29 22:57 我就尝一口 阅读(202) 评论(0) 推荐(0) 编辑
摘要:这一篇来讲五角星部分,diff算法最精华的内容: 子节点更新策略 一、经典的diff算法优化策略 四种命中查找:(按照顺序排列)(四个指针) 命中一种就不再继续往下命中判断了 如果当前没有命中,就继续往下命中判断 如果都没有命中,就只能用循环来寻找了 1. 新前与旧前 2. 新后与旧后 3. 新后与 阅读全文
posted @ 2021-08-23 06:43 我就尝一口 阅读(130) 评论(0) 推荐(0) 编辑
摘要:一、感受 diff 算法 当父节点发生改变时,比如 ul 变为 ol ,里面的 li 不发生改变,diff 算法是会暴力删除的。 2. diff 算法处理新旧节点不是同一个节点时。 snabbdom 判断是否是相同的虚拟节点: 创建节点时,所有子节点需要递归创建的。 二、手写第一次上树时 1. 目录 阅读全文
posted @ 2021-08-11 07:00 我就尝一口 阅读(69) 评论(0) 推荐(0) 编辑
摘要:h 函数支持以下写法,此次手写 h 函数,只支持后面 3 种写法(低配版) 文件结构: vnode.js // 函数的功能非常简单,就是透传参数 export default function (sel, data, children, text, elm) { return { sel, data 阅读全文
posted @ 2021-08-05 07:22 我就尝一口 阅读(336) 评论(1) 推荐(0) 编辑
摘要:1. 安装 npm init npm i -S snabbdom webpack配置虚拟打包路径: 运行git首页的 snabbdom 示例代码:(放到 index.js 中): index.html 里要放一个 id 为 container 的 div: 将这两个函数先替换成 空函数: 代码运行成 阅读全文
posted @ 2021-08-04 07:22 我就尝一口 阅读(249) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示