摘要:
useState的基本用法 useState用于向函数组件添加状态 它接收一个参数作为状态的初始值,并返回一个数组 数组的第一个值为状态,第二个值为改变状态的函数 import React, { useState } from 'react' function stateClass(){ const 阅读全文
摘要:
需求分析 很多时候我们需要通过弹窗/对话框来完成交互,因此这个公共的弹窗组件需要实现以下功能: 组件动态地传入弹窗的标题和内容 点击确定和取消按钮之后,执行组件传入的回调函数 样式布局 JSX代码如下:(通过 styled-components 开发样式) const JSXdom = ( <div 阅读全文
摘要:
上一篇文章中,我们介绍了如何实现轮播图的无缝滚动 这一篇文章将会介绍如何实现自动播放,以及如何将自动播放和手指滑动这两个事件进行隔离 自动播放 假设自动播放的顺序为:图片无限向左滚动 那么当我们发现 this.current 指向第二组最后一张图片时,也应该让它瞬间移动到第一组的最后一张图片 直接看 阅读全文
摘要:
需求分析 移动端触摸滑动:图片可以跟随手指滑动而滑动 底部小圆点:与轮播图联动的显示效果 无缝循环滚动:第一张图可以往前滑动、最后一张图也可以往后滑动 可以自动播放(下一篇文章介绍) 页面样式和布局 <SliderWrapper ref={this.wrap} width={this.props.i 阅读全文
摘要:
题型概述和分析 滑动窗口问题通常会给出一长一短的两个字符串:s和t 核心目的是让你判断s中是否包含t 整体的思路如下: 初始化两个哈希表,need表示字符串t各个字符的个数,window表示当前窗口内各个所需字符的个数,用变量missingType表示当前窗口缺少的字符种类 用 left 和 rig 阅读全文
摘要:
题目描述 解题思路 我们可以将问题改写成: 现在有2n个位置,每个位置可以放 ( 或者 ),组成的所有括号组合中,哪些是合法的? 解决这个问题只需要分2步: 暴力枚举所有可能的情况,共有2的2n次方 在做选择之前,进行“剪枝” 1、暴力枚举 只需要直接套用回溯算法的框架即可: 当path的长度为2n 阅读全文
摘要:
题目描述 解题思路 在写代码之前,思考以下3个问题: 如何判断是否已经满足结束条件? 如何在选择列表中选择一个? 如何撤销选择? 对全排列这个问题进行具体分析,逐一击破: 1、如何判断是否已经满足结束条件? 显然,每一种全排列的长度 与 题目给定的数组长度一致 因此,只需要比较路径的长度 与 题目给 阅读全文
摘要:
题目描述 实现思路 1、大致分析 依据题目,可以列举出几个显而易见的事实: 调用get方法, 返回该key对应的val 调用get或者put方法访问某个key,该key对应的freq加一 如果在容量满了以后进行插入,则需要将freq最小的key删除,如果最小的freq对应多个key,则删除其中最旧( 阅读全文
摘要:
LRU:最近最少使用 题目描述 算法设计 cache这个数据结构需要具备以下条件: 元素必须有时序,当容量满了以后要删除最久未使用的元素 get方法要求在O(1)的时间复杂度内,快速找到cache中是否存在某个key 每次调用get方法,需要将被访问元素变为最近使用的,即cache要支持在O(1)的 阅读全文
摘要:
普通消息队列 一个代码块中的所有同步代码,都会被看作一个宏任务,添加到普通消息队列的尾部 延迟执行队列 当你在代码中使用 setTimeout 或 setInterval 时,会创建一个宏任务 延迟指定的时间后,将其放入延迟执行队列的尾部 事件循环系统 为了简化叙述,我们可以理解为:每一轮事件循环都 阅读全文