09 2022 档案

摘要:先来了解下react hooks 闭包陷阱: 原因: 闭包陷阱产生的原因就是 useEffect 等 hook 里用到了某个 state,但是没有加到 deps 数组里,这样导致 state 变了却没有执行新传入的函数,依然引用的之前的 state。 解决方式一: 把 state 设置到 deps依 阅读全文
posted @ 2022-09-29 14:47 蓓蕾心晴 阅读(233) 评论(0) 推荐(0) 编辑
摘要:一、做好效果如下 二、思路分析 主要实现方法: transform: rotate(xxdeg) 实现圆环,如果单通过一个圆环来实现,则整个圆环上的颜色无法实现部分动,这时候就需要遮罩 左右各一个矩形区域,设置 overflow: hidden; 里面放一个圆,两个举行的总宽度为一个圆的直径 每个矩 阅读全文
posted @ 2022-09-28 14:54 蓓蕾心晴 阅读(253) 评论(0) 推荐(0) 编辑
摘要:实际开发体验中,大家都可以明显感觉到 rollup 都比 webpack 启动快多了,实际是什么原因? 个人理解: 1. vite 在开发阶段,采用了 esbuild 依赖预构建,所以大家会感觉到首次 run dev 的时候会稍微慢一些,如果 package.json 中依赖的包改变了,还会重新构建 阅读全文
posted @ 2022-09-27 17:03 蓓蕾心晴 阅读(2075) 评论(0) 推荐(1) 编辑
摘要:vue3 随着Vue3.0版本的发布,我们在使用或者对其源码进行阅读时会惊讶的发现,它又又又双叒叕变强了,尤大本人在直播中也提到新的Vue会比老的Vue有1.3到2倍的提升,它的更新机制会更加的快速敏捷。下面就抛砖引玉,给大家稍微介绍下在更新机制方面主要升级的两个点: 节点移动优化 要从一道算法题说 阅读全文
posted @ 2022-09-25 01:51 蓓蕾心晴 阅读(520) 评论(0) 推荐(0) 编辑
摘要:一、引子 这是关于一把玄铁重剑,一本经书,和一套轻功步法的故事。让我们先从普通程序猿们的日常工作内容说起,一般来说,程序猿们大部分时间关注的可能不是研发某个具体算法,这是算法工程师/数学家们擅长的东东。程序猿的工作主要是通过调用编程环境中现成的工具函数或接口来实现具体的应用功能,将各个底层接口或算法 阅读全文
posted @ 2022-09-23 15:49 蓓蕾心晴 阅读(558) 评论(0) 推荐(0) 编辑
摘要:概念 Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze() 返回 阅读全文
posted @ 2022-09-21 14:34 蓓蕾心晴 阅读(578) 评论(0) 推荐(0) 编辑
摘要:背景 工作中,默认提测分支叫 staging,每次提测,都需要将开发分支合并到 staging 提测分支,并 push,才算提测,当修复一些 bug 之后,免不了反复执行同一套 git 命令,于是写一个简单的 shell 脚本,减少重复工作。 注意 本脚本仅适用于开发分支合并到提测分支(目标分支), 阅读全文
posted @ 2022-09-21 02:23 蓓蕾心晴 阅读(794) 评论(0) 推荐(0) 编辑
摘要:watch和 watchEffect watch watch显式指定依赖数据,依赖数据更新时执行回调函数 具有一定的惰性(lazy) , 第一次页面展示的时候不会执行,只有数据变化的时候才会执行(设置immediate: true时可以变为非惰性,页面首次加载就会执行) 监视ref定义的响应式数据时 阅读全文
posted @ 2022-09-20 00:30 蓓蕾心晴 阅读(565) 评论(0) 推荐(0) 编辑
摘要:react useMemo和 useEffect和 useCallback useEffect effect只能在DOM更新后触发 useMemo 传入 useMemo 的函数会在渲染期间执行,即在DOM更新前触发的,就像官方所说的,类比生命周期就是shouldComponentUpdate use 阅读全文
posted @ 2022-09-20 00:21 蓓蕾心晴 阅读(1118) 评论(0) 推荐(0) 编辑
摘要:编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为 汉明重量).)。 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无 阅读全文
posted @ 2022-09-18 16:51 蓓蕾心晴 阅读(59) 评论(0) 推荐(0) 编辑
摘要:给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2: 阅读全文
posted @ 2022-09-14 01:24 蓓蕾心晴 阅读(68) 评论(0) 推荐(0) 编辑
摘要:浏览器渲染路径,先构建 DOM 树,再构建 CSSOM 树,DOM 树再与 CSSOM 树合并为渲染树,之后再进行布局、绘制,完成渲染过程。 其中,html、css、js 的加载都会影响页面的渲染速度,而渲染树必备要素为 html 和 css ,所以要尽可能让他们提前渲染,js 则尽可能滞后加载。 阅读全文
posted @ 2022-09-13 17:24 蓓蕾心晴 阅读(23) 评论(0) 推荐(0) 编辑
摘要:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例 1: 输入:l1 = [2,4,3], l2 = [5,6 阅读全文
posted @ 2022-09-09 15:07 蓓蕾心晴 阅读(160) 评论(0) 推荐(0) 编辑
摘要:给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 示例 1: 输入: num = 38输出: 2 解释: 各位相加的过程为:38 --> 3 + 8 --> 1111 --> 1 + 1 --> 2由于 2 是一位数,所以返回 2。示例 1: 输入: num = 阅读全文
posted @ 2022-09-09 11:26 蓓蕾心晴 阅读(86) 评论(0) 推荐(0) 编辑
摘要:原题链接 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。 示例 1: 输入:num1 = "11", num2 = "123"输出:"134" 阅读全文
posted @ 2022-09-09 01:56 蓓蕾心晴 阅读(251) 评论(0) 推荐(0) 编辑
摘要:LFU 算法 /** * @param {number} capacity */ var LFUCache = function (capacity) { this.map = new Map();// 存放 key:node 的索引,便于快速访问节点 this.freqArr = new Arra 阅读全文
posted @ 2022-09-08 15:41 蓓蕾心晴 阅读(108) 评论(0) 推荐(0) 编辑
摘要:// pid 代表属于的父级 id // id 代表的是自己本身的id,本身的 id 是多少 let flatArr = [ { id: 1, name: "部门1", pid: 0 }, { id: 2, name: "部门2", pid: 1 }, { id: 3, name: "部门3", p 阅读全文
posted @ 2022-09-07 17:39 蓓蕾心晴 阅读(1236) 评论(0) 推荐(0) 编辑
摘要:实现一个简单版本 Vue,仅实现了 数据响应式、依赖收集、compile编译中的html和文本编译,起名为nvue,即新 vue。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X 阅读全文
posted @ 2022-09-06 14:43 蓓蕾心晴 阅读(77) 评论(0) 推荐(0) 编辑
摘要:参考: https://blog.csdn.net/nanxun201314/article/details/117451442 https://zhuanlan.zhihu.com/p/368238830 源码分析参考 阅读全文
posted @ 2022-09-04 22:58 蓓蕾心晴 阅读(18) 评论(0) 推荐(0) 编辑
摘要:// 计数排序 // 稳定性:稳定 // 定义一个数组,将数组中每个元素出现的次数以数组形式保存起来,数组索引值即为具体 key,数组索引对应的元素值即为该索引值出现的次数 // 再将保存起来的次数的数字依次放入原数组 function countingSort(arr, maxValue) { l 阅读全文
posted @ 2022-09-04 20:58 蓓蕾心晴 阅读(52) 评论(0) 推荐(0) 编辑
摘要:// 快速排序 // 快速排序基本思路, 通过遍历,找到一个基准值,遍历一趟后,将所有比基准值小的放在基准值左边,比基准值大的放在基准值右边,这时候基准值就是一个排好序的数,再将基准值两边的数组分别调用此方法递归,最终生成有序数列 // 1.左右指针交换法 // 左右指针对向前进,当遇到左侧指针所指 阅读全文
posted @ 2022-09-03 16:14 蓓蕾心晴 阅读(629) 评论(0) 推荐(0) 编辑
摘要:// 插入排序的原理: // 一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。 // 插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而得到一个新的、长度数增 1 的有序表。在其实现过程使用双层循环,外层循环从第二个元素开始遍历,代表执行多少 阅读全文
posted @ 2022-09-02 15:48 蓓蕾心晴 阅读(560) 评论(0) 推荐(0) 编辑
摘要:// 选择排序 // 原理:进行 n-1 趟 循环,每趟循环中遍历所有未排好序的数,第一趟循环,从第0个元素开始向后遍历,找到 最小的元素,与第1 一个元素进行交换,第二趟,从第 1 个元素开始向后遍历,找到最小值与第2个元素 进行交换,以此类推 // 从而得出规律,每次遍历元素开始位置为 i+1, 阅读全文
posted @ 2022-09-02 11:50 蓓蕾心晴 阅读(52) 评论(0) 推荐(0) 编辑
摘要:// 冒泡排序 // 原理就是每一轮循环,将一个最大的值冒泡到最后 // 1.每一趟都是比较相邻两个元素,如果前一个元素大于后一个,则交换两个元素 // 2.第一趟从第一个元素开始进行交换,最后一个元素不参与交换,第二趟最后两个元素不参与交换......以此类推,所以第二层循环要将数组的长度-1-i 阅读全文
posted @ 2022-09-01 18:45 蓓蕾心晴 阅读(232) 评论(0) 推荐(0) 编辑
摘要:js 创建二维数组的方法: 方法一: 直接设置 let arr = [ [1, 2], [3, 4], [5, 6], ]; let arr = [] ; arr[0] = [1,2,3,4,5,6]; arr[1] = [10,20,30,40,50,60] 方法二: fill + 一个 for 阅读全文
posted @ 2022-09-01 00:26 蓓蕾心晴 阅读(9738) 评论(0) 推荐(0) 编辑

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