• 2024-09-07react 学习之从diff children看key的合理使用
    大部分优化环节react都自己在内部处理了,但有一种情况也值得开发者注意,那就是列表中key的使用,合理的使用key有助于能精确的找到用于新旧节点复用的老节点。那么我们这里来学习下react是如何diffchildren的,从源码的角度看。用几个案例来描述ReactdiffChild核心流程,react在一次更
  • 2024-08-13React Diff
    ReactDiff流程前提在React的render阶段的beginWorl方法中对于update的组件会通过reconcileChildFibers方法将当前组件与该组件在上次更新时对应的Fiber节点进行比较(即diff算法),将比较的结果生成新的Fiber节点,即创建workInProgressfiber的过程。其中,在某一时刻,一个DOM节点最多
  • 2024-07-18Vue2中Diff算法解析
    Vue2中Diff算法解析import{compileToFunction}from'./compiler/index.js';import{patch,createElm}from'./vdom/patch';//1.创建第一个虚拟节点letvm1=newVue({data:{name:'hs'}});letrender1=compileToFunction('<div>{{nam
  • 2023-12-08React diff 算法详解
    代码参照React16.13.1什么是Diff在render阶段的beginWork函数中,会将上次更新产生的Fiber节点与本次更新的JSX对象(对应ClassComponent的this.render方法返回值,或者FunctionComponent执行的返回值)进行比较。根据比较的结果生成workInProgressFiber,即本次更新的Fiber节
  • 2023-11-07Vue源码学习(十五):diff算法(二)交叉比对(双指针)
    好家伙, 本节来解决我们上一章留下来的问题,新旧节点同时有儿子的情况本章继续解决 1.要做什么?本章将解决,1.在相同tag下子元素的替换问题2.使用双指针进行元素替换,实现效果如下: letvm1=newVue({data:{name:'张三'}})letrender1=compileToFunc
  • 2023-07-05vue渲染原理简单实现
    实现功能:1.渲染系统:·功能一:h函数,用于创建并返回一个VNode(虚拟对象);·功能二:mount函数,用于将VNode挂载到节点上;·功能三:patch函数,用于对比两个VNode,决定该如何处理新的VNode;1.新建一个index.html的页面其中有一个id为app的div元素,之后我们写的所有DOM都会挂载到此元素
  • 2023-05-26虚拟dom
    虚拟dom啥是虚拟dom为什么要有这玩意这玩意给前端造成了那些影响怎么做一个玩具版本的虚拟dom虚拟dom,听名字应该就知道了,假dom,为什么要有假dom,因为操作真dom太重了吗?都说虚拟dom能提高性能,真的吗?letdom=createElement('div')div.style.backgrou
  • 2023-02-13老生常谈React的diff算法原理-面试版
    第一次发文章notonly(虽然)版式可能有点烂butalso(但是)最后赋有手稿研究finally看完他你有收获diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的
  • 2022-12-19老生常谈React的diff算法原理-面试版
    第一次发文章notonly(虽然)版式可能有点烂butalso(但是)最后赋有手稿研究finally看完他你有收获diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的
  • 2022-11-10老生常谈React的diff算法原理-面试版
    第一次发文章notonly(虽然)版式可能有点烂butalso(但是)最后赋有手稿研究finally看完他你有收获diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的
  • 2022-10-27老生常谈React的diff算法原理-面试版
    第一次发文章notonly(虽然)版式可能有点烂butalso(但是)最后赋有手稿研究finally看完他你有收获diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的
  • 2022-10-05老生常谈React的diff算法原理-面试版
    第一次发文章notonly(虽然)版式可能有点烂butalso(但是)最后赋有手稿研究finally看完他你有收获diff算法:对于update的组件,他会将当前组件与该组件在上次更新是对应的
  • 2022-09-20树结构数组筛选数据
    树形结构如下:deptData:[{deptName:'管理部',id:'1',children:[