React中context的用法 使用Context可以避免组件的层层props嵌套的问题。但是它使用consumer拿值时,会多一层组件。得益于useContext hook我们可以不使用consumer组件,直接拿到值。一般的使用场景,如拿全局的class前缀,或者国际化,Ui主题颜色等。当 Provider 的 value 值发生变化时,它内部的所有消费组件都会重新渲染。
【算法】快速排序 一、原理(1)从数组中选择中间位置的值作为主元;(2)将主元从数组中剔除,并开辟两个数组left和right,把数组中小于等于主元的值放进left,大于主元的值放进right;(3)对left和right数组继续进行步骤一和步骤二,直到数组已完全排序;二、代码实现var quickSort = function (arr) { if (arr.length < 2) return arr; var currentItem = arr.splice(Math.floor(arr
【算法】归并排序 LeetCode148.排序链表 一、归并排序原理1.归并排序是一种分而治之的算法。其思想是将原始数组切割分成较小的数组,直到每个数组中只有一个元素,接着将小数组归并成较大的数组,直到最后只有一个排序完毕的大数组。2.算法分为两个函数一个是划分mergeSort,采用递归的方式将大数组分割成小数组。划分是一个递归过程,它需要一个终止条件,就是判断数组的长度是否为一,如果是,则返回这个数组。如果数组的长度不为一,将其继续划分为小数组,首先得找到数组的中间位mid,找到后将数组分为两个小数组left和right,left数组由索引0到
【算法】滑动窗口leetcode567 1.例题LeetCode567给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。换句话说,s1 的排列之一是 s2 的 子串 。示例 1:输入:s1 = “ab” s2 = “eidbaooo”输出:true解释:s2 包含 s1 的排列之一 (“ba”).示例 2:输入:s1= “ab” s2 = “eidboaoo”输出:false提示:1 <= s1.length, s2.length &l
【算法】广度优先搜索和深度优先搜索LeetCode200.岛屿数量 一、广度优先搜索 (BFS)1.学习视频 BFS学习视频简单易懂b站麦克老师讲算法2.原理二、深度优先搜索 (DFS)1、学习视频麦克老师讲算法DFS2、原理三、例题leetcode200岛屿数量给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:grid = [[“1”,“1”,“1”,“1”,“0”]
在页面加载后设置<embed>标签的src 在页面加载完之后,再给embed 加入src 值无效1.原因embed 和 object 因为数据(video, audio, flash, activex)的特殊性,跟一般DOM处理上有所不同,在载入后浏览器会拒绝改变它们的 src 属性。embed嵌入式对象是比较特殊的,你一旦嵌入到文档中无论怎么改src它都不会重新加载。其实你了解它的道理后也不难理解,它实质上是浏览器调用的外部插件来渲染的(比如你的例子就是调用的flash插件),这个渲染过程是在嵌入的时候就完成了,而这些属性也都是嵌入的时候传递给
粘性布局之固定表头 一、粘性布局position: sticky 配合 [left, right, top, bottom] 中一个即可实现粘性布局粘性布局只在其父元素空间内生效,且要实现 “粘性” 效果,对其父元素有以下要求,否则粘性效果会失效必须满足父元素在需要粘的轴上的空间 > 粘性布局子元素在需要粘的轴上的大小(例如子元素设置top/bottom粘垂直轴,父元素的高度需要大于子元素的高度,这样才有可以活动的空间嘛)父元素中不能设置 overflow: hidden 或 overflow: auto未同
安卓手机调试代码 一、安装Vconsole1、官网链接:https://github.com/Tencent/vConsole/blob/HEAD/README_CN.mdnpm安装完成之后,在项目入口文件main.ts中导入Vconsole并加入以下代码,重启项目const vConsole = new VConsole();2.将以下链接发送至手机(下面一条打不开),填写完整,手机连公司内网,打开后即可调试二、在手机端调试之前先去设置中打开开发者模式1.以realme x7 pro为例,设置 ->
【算法】二分查找LeetCode278.第一个错误的版本 一、 使用前提和基本原理二、题目leetcode 278.第一个错误的版本题目描述你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个
addEventListener的第三个参数 1.使用事件监听绑定方法var btn = document.getElementById('submit'); btn.addEventListener('click', onClickFn, false);提问:第三个参数为何是“false”?当鼠标点击所看到的的按钮时,其实发生了一系列的事件传递,可以想象一下,button实际上是被body“包裹”起来的,body是被html“包裹”起来的,html是被document“包裹”起来的,document是被window“包裹”起来的。所以,在你的鼠