- 博客(125)
- 资源 (2)
- 收藏
- 关注
原创 React 的源码与原理解读(十五):Hooks解读之四 useLayoutEffect&useEffect
这个章节主要讲解React 的 useLayoutEffect 和 useEffect 这两个 api,它们也是我们常用的 hooks,这两个 api 常被我们用来作为函数组件的生命周期来使用,用于处理我们副作用相关的内容,这篇我们就来看看他们的原理,以及在源码中运行作用的方式
2023-05-24 16:15:16
665
原创 React 的源码与原理解读(十四):Hooks解读之三 useState&useReducer
这个章节主要讲解React 的 useState 和 useReducer 这两个 api,这是我们使用最多的 hook 了,他们允许我们在函数组件中也持有状态 state,然后对这个状态进行操作,这一章我们会从使用和源码两个角度深入讲解这两个 hooks
2023-05-21 21:42:05
306
原创 leetcode — JavaScript专题(五):计数器 II、只允许一次函数调用、 创建 Hello World 函数、将对象数组转换为矩阵、节流、分块数组
leetcode — JavaScript专题(五):计数器 II、只允许一次函数调用、 创建 Hello World 函数、将对象数组转换为矩阵、节流、分块数组
2023-05-19 14:29:01
21
原创 React 的源码与原理解读(十三):Hooks解读之二 useRef
这个章节主要讲解React 的 useRef 这个 api,我们将从使用和源码两个角度来讲它,介绍它作为组件的全局变量和 DOM 引用两个场景下的使用和源码挂载,以及 React 一个和引用相关的 api —— forwardRef
2023-05-12 19:01:25
514
原创 React 的源码与原理解读(十二):Hooks解读之一 useCallback&useMemo
从这个章节开始,我们将逐步讲解部分常用的 hooks,我会按照我们理解这些 hooks 的难度来讲解,本节主要讲解我们用于优化的useCallback 和 useMemo 两个 api,我们将从使用和源码两个角度来讲它:
2023-05-10 16:49:46
407
原创 React 的源码与原理解读(十一):hooks 的原理
这个章节和前面的部分相对独立,我们将来讲一下我们在 React 16.8 更新的新特性 **Hooks**,我们都知道 Hooks 的提出主要就是为了解决函数组件的状态问题而存在的,之前我们的 class 组件有状态,但是 function 组件没有,所以为了解决这个问题,hooks 诞生了。那么为了让我们的 hooks 挂在在整个 React 的生命周期中, React 是怎么样处理他们的呢,我们来看看这部分的内容:
2023-05-08 20:10:13
377
原创 leetcode — JavaScript专题(四):过滤数组中的元素、转换数组中的每个元素、Promise 对象池、有时间限制的 Promise 对象、生成斐波那契数列、嵌套数组生成器
leetcode — JavaScript专题(四):过滤数组中的元素、转换数组中的每个元素、Promise 对象池、有时间限制的 Promise 对象、生成斐波那契数列、嵌套数组生成器
2023-05-01 16:15:49
52
原创 React 的源码与原理解读(十):updateQueue 与 processUpdateQueue
这个章节是补充的章节,因为我突然发现将了 lanes 的时候提到了我们的 updateQueue ,我以前之前讲过了,结果发现之前因为涉及了大量 lanes 的内容所以没讲,那么在将 hooks 之前,我们补充一篇 updateQueue 以及相关操作的讲解,这篇会让你在我学习**lanes ** 系统之后,对于我们怎么样依赖 lanes 系统进行我们的更新有更深刻的了解
2023-04-30 21:06:41
343
原创 leetcode — JavaScript专题(三):完全相等的 JSON 字符串、复合函数、 分组、柯里化、将对象转换为 JSON 字符串
leetcode — JavaScript专题(三):完全相等的 JSON 字符串、复合函数、 分组、柯里化、将对象转换为 JSON 字符串
2023-04-29 11:52:37
713
原创 React 的源码与原理解读(九):Lanes
在之前的章节中,我们主要分析了 **Scheduler ** 系统是怎么样调度我们的渲染任务的,他主要用于判断在一批任务的执行过程中,我们什么时候要把进程还给我们的浏览器;而这一篇我们要谈到我们 React 中的了一个套优先级系统 —— lanes,这套系统主要用于我们讨论优先级低的任务执行过程中是不是一个被打断,转而执行优先级更高的任务。
2023-04-27 11:24:27
681
原创 leetcode — JavaScript专题(二):记忆函数、蜗牛排序、扁平化嵌套数组、数组归约运算、函数防抖
leetcode javascript专题(二):记忆函数、蜗牛排序、扁平化嵌套数组、数组归约运算、函数防抖
2023-04-24 15:33:13
309
原创 leetcode — JavaScript专题(一):检查是否是类的对象实例、数组原型对象的最后一个元素、计数器、睡眠函数、有时间限制的缓存
leetcode 的 js 专题(一):检查是否是类的对象实例、数组原型对象的最后一个元素、计数器、睡眠函数、有时间限制的缓存
2023-04-24 13:49:18
384
原创 React 的源码与原理解读(八):Scheduler
在之前的章节中,我们主要分析了 React 怎么样从我们编写的 jsx 代码变成我们看得到的 DOM 元素,我们在讲解过程中为了能连贯的讲解,留下了很多的坑没填,一部分就是关于进程调度的,这一节我们就要填上这些坑。这节我们先讲React 中的 **Scheduler ** 系统是怎么样调度我们的渲染任务的,它怎么样计算任务的运行时间、调度任务的运行顺序以及怎么样恢复被中断的任务
2023-04-18 18:25:29
274
原创 React 的源码与原理解读(七):commit 阶段
本节的我们将谈谈 **commit** 中 React 的操作,因为在之前的教程中,我们已经讲到了 React 怎么样把 element 节点变成 Fiber 树,怎么样通过 DIFF 算法更新我们的 Fiber 树,那么现在我们需要将我们的 Fiber 树的更新同步到我们的真实 DOM 上展示给用户,这个阶段就是 Commit 阶段
2023-04-14 13:25:05
295
原创 React 的源码与原理解读(六):reconcileChildren 与 DIFF 算法
本节的我们将从 上一节留下的问题出发,谈谈 **reconcileChildren()** 中怎么样最终生成 fiber 结点,其中我们会谈到 React 核心的 **DIFF 算法**,他的核心 —— 复用怎么实现,同时他是怎么样把比较的时间复杂度进行了优化
2023-04-11 16:02:17
303
原创 [失业前端恶补算法]JavaScript leetcode刷题top100(五):两数相加、无重复字符的最长子串、最长回文子串、盛最多水的容器、三数之和
js 攻克leetcode top100 :两数相加、无重复字符的最长子串、最长回文子串、盛最多水的容器、三数之和
2023-04-02 10:31:38
284
原创 React 的源码与原理解读(五):beginWork 分类处理逻辑
本节的我们将从 上一节留下的问题出发,谈谈 **beginWork ()** 中怎么样把一个 element 节点变成一个 fiber 结点,其中我们会提到我们的 **beginwork 怎么样处理更新和首次渲染**,通过什么样的方式来加速渲染,以及**对于不同类型的节点使用怎么样不同的逻辑**
2023-03-28 17:35:48
204
原创 React 的源码与原理解读(四):updateContainer 内如何通过深度优先搜索构造 Fiber 树
本节的我们将从 上一节留下的问题出发,谈谈 **render()** 中的 **updateContainer** 做了什么工作,他怎么样把 **传入进去的 DOM 元素变成我们的 Fiber 元素**。因为这部分涉及到大量进程调度的问题,我们暂时不谈论这些问题,只是简单谈谈从 **updateContainer** 开始到最后变成 Fiber 经历的一系列的函数链,以及他们分别做了什么工作,进程调度的全部内容我们会在之后详细谈谈
2023-03-23 21:59:20
62
原创 React 的源码与原理解读(三):从 Render 开始,理解元素的挂载和解析
本节的我们将从 React 的入口函数出发,谈谈在 **render()** 之后,React 做了什么事情,这部分会涉及到我们怎么样**生成一个 Fiber 根节点以及一棵 Fiber 树**,然后将它 **挂载到真实 DOM 上** 的问题,所以需要您先阅读前两章的内容来了解什么是 Fiber
2023-03-21 16:34:17
168
原创 React 的源码与原理解读(二):Fiber 与 Fiber 链表树
本节的内容我们将讲述React中的一个很重要的数据结构——**Fiber** ,本节先着重说明**什么是 Fiber 结构,它的数据结构是什么,以及 React 为什么要在 16.X 版本后引入 Fiber 结构**,之后的章节会讲述从 React Element 到 Fiber 树的过程以及 Fiber 树的生成和更新
2023-03-20 21:09:44
279
原创 React 的源码与原理解读(一):从创建React元素出发
这个专栏的写作是为了记录在阅读 React 源码和 React 源码构造思想的时候的心得体会编写的,这个专栏将从 React 的怎么样将一个 jsx 组件生成出对应的 DOM 出发,讲解 React 源码的运行原理和设计思路,组件的生命周期如何绑定,React 的虚拟DOM 为什么比真实的DOM 高效,并且简要谈谈 React Hooks 的设计。
2023-03-16 16:40:24
729
原创 [失业前端恶补算法]JavaScript leetcode刷题top100(四):移动零、比特位计数、找到所有数组中消失的数字、二叉树的直径、汉明距离、合并二叉树
JavaScript 攻克 力扣 top 100热题4:移动零、比特位计数、找到所有数组中消失的数字、二叉树的直径、汉明距离、合并二叉树
2023-03-11 15:47:24
15
原创 [失业前端恶补算法]JavaScript leetcode刷题top100(三):相交链表、多数元素、反转链表、翻转二叉树、回文链表
JavaScript 攻克 力扣 top 100热题3:相交链表、多数元素、反转链表、翻转二叉树、回文链表
2023-03-10 21:56:12
342
原创 Rust Web 进阶(一):Rust异步编程(Tokio)
这一篇将讲解什么是和为什么进行异步编程,Rust 怎么样进行异步编程以及其机制,并且讲解目前 rust 常用的异步编程的函数库。本章的内容来自杨旭老师的教程:https://www.bilibili.com/video/BV16r4y187P4/?spm_id_from=333.999.0.0&vd_source=8595fbbf160cc11a0cc07cadacf22951
2023-03-10 21:04:04
741
原创 Rust Web入门(八):打包发布
本教程笔记来自 杨旭老师的 rust web 全栈教程,项目的源代码可以查看 git:(注意作者使用的是 mysql 数据库而不是原教程的数据库)https://github.com/aiai0603/rust_web_mysql这是本教程的最后一节,我们将把我们之前编写的项目进行打包发布:
2023-03-09 10:03:43
493
原创 Rust Web入门(七):WebAssembly
本教程笔记来自 杨旭老师的 rust web 全栈教程,项目的源代码可以查看 git:(注意作者使用的是 mysql 数据库而不是原教程的数据库)https://github.com/aiai0603/rust_web_mysql在之前的项目中,我们使用 rust 的模板引擎 Tera 编写一个项目,这节课我们来介绍一种 Rust 提供的更加高级的功能来编写前端应用—— WebAssembly,这是官方文档https://rustwasm.github.io/docs/book/
2023-03-08 20:44:42
419
原创 Rust Web入门(六):服务器端web应用
本教程笔记来自 杨旭老师的 rust web 全栈教程,链接如下:学习 Rust Web 需要学习 rust 的前置知识可以学习杨旭老师的另一门教程项目的源代码可以查看 git:(注意作者使用的是 mysql 数据库而不是原教程的数据库)在之前的项目中,我们已经使用了 rust 编写了一些具有增删改查功能的接口并且进行测试,但是作为一款完整的应用,他还需要将这些数据展示到页面中的功能;
2023-03-06 21:26:05
578
原创 Rust Web入门(五):完整的增删改查
本教程笔记来自 杨旭老师的 rust web 全栈教程,链接如下:学习 Rust Web 需要学习 rust 的前置知识可以学习杨旭老师的另一门教程项目的源代码可以查看 git:(注意作者使用的是 mysql 数据库而不是原教程的数据库)今天来实现有个 rust web 的完整增删改查的例子
2023-03-03 20:27:12
585
原创 [失业前端恶补算法]JavaScript leetcode刷题top100(二):对称二叉树、二叉树的最大深度、买卖过票的最佳时机、只出现一次的数字、环形链表
JavaScript 攻克 力扣 top 100热题2:对称二叉树、二叉树的最大深度、买卖过票的最佳时机、只出现一次的数字、环形链表
2023-03-01 09:43:56
78
原创 Rust Web入门(三):连接数据库
本教程笔记来自 杨旭老师的 rust web 全栈教程,今天学习 rust web 这么连接数据库操作数据
2023-02-25 17:33:38
775
原创 Rust Web入门(二):Actix
本教程笔记来自 杨旭老师的 rust web 全栈教程,链接如下:学习 Rust Web 需要学习 rust 的前置知识可以学习杨旭老师的另一门教程。
2023-02-20 11:03:16
503
原创 Rust Web入门(一):TCP 和 HTTP Server
本教程笔记来自 杨旭老师的 rust web 全栈教程,链接如下:https://www.bilibili.com/video/BV1RP4y1G7KF?p=1&vd_source=8595fbbf160cc11a0cc07cadacf22951学习 Rust Web 需要学习 rust 的前置知识可以学习杨旭老师的另一门教程https://www.bilibili.com/video/BV1hp4y1k7SV/?spm_id_from=333.999.0.0&vd_source=8595fbbf160cc
2023-02-17 22:04:56
687
原创 Rust入门(十六):手写web服务器和线程池
这一章将实现一个rust手写的 web server 和 多线程的服务器,用到之前学到的所有特性。
2023-02-16 17:05:44
529
原创 [失业前端恶补算法]JavaScript leetcode刷题top100(一):两数之和、有效的括号、合并两个有序链表、爬楼梯、二叉树的中序遍历
JavaScript攻克 力扣 top100 热题1:两数之和、有效的括号、合并两个有序链表、爬楼梯、二叉树的中序遍历
2023-02-14 21:35:04
303
原创 字节青训前端笔记 | 数据可视化基础
如何一种将数据转换成可视化形式的方式(比如 图标,地图,图标,表格等等)。它可以分为:科学可视化(将实验数据更加直观的展示)、信息可视化(对抽象数据直观展示)、可视乎分析(对分析结构的直观展示、以及交互式反馈)。可视化的目的是:记录信息,分析推理,证实假设,交流思想。
2023-02-11 12:29:56
436
原创 vue3组件库项目学习笔记(八):Git 使用总结
目前组件库的开发已经接近尾声,因为这次是使用 git 进行协作的开发模式,在团队协作的时候遇到很多的问题,开发过程中发现小伙伴们对于 git 的使用还不是很熟练,这里就简单总结一下常用的 git 的操作,大致有:- 项目开发如何 fork / pr 的模式进行开发- 怎么样处理冲突- 怎么样忽略文件并且取消追踪关于组件库代码,想要看代码的可以直接前往我的 github:https://github.com/aiai0603/seven-bit-ui
2023-02-10 21:40:12
435
原创 字节青训前端笔记 | 前端监控 SDK 实战
这节实战课,学习了如下的内容:1. 引入前端监控的概念2. 介绍前端监控的性能指标与异常3. 实战:封装用于监听性能指标与前端异常的监听器4. 实战:封装一个有完整上报能力的 sdk
2023-02-05 22:23:00
526
原创 vue3组件库项目学习笔记(七):正式开发问题拾遗
目前组件库的开发还在进行中,这里把一些开发过程中遇到的问题和解决方案总结一下,也方便后续开发的同学踩坑了可以马上解决问题,这期的问题主要是:- 多项目开发的配置文件优化和全局导入方法的修改- 怎么样使用 icon 组件- 怎么样使用做组件协作开发个
2023-02-04 10:10:56
528
原创 字节青训前端笔记 | 跨端技术概述
渲染层,又叫视图层主要负责小程序的UI渲染,也就是展示给用户的部分,界面渲染相关的任务全都在 WebView 里执行,如果一个小程序存在多个界面,就存在多个 WebView 线程。PS以下来自作者:有一说一直播网炸了所以没讲太多,想要了解的可以自己去看,目前主流的还是对手公司的微信小程序,字节小程序用的属实不多哦,需要用的也可以用 uniapp(vue 友好) 直接转基本上现在所有平台的小程序和快应用。动态化——支持动态下发,满足日益增长的业务需求。重点:小程序的逻辑层和渲染层是分开的,是。
2023-02-02 14:58:57
344
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人