自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 收藏
  • 关注

原创 【HM-React】08. Layout模块

业务背景:如果用户一段时间不做任何操作,到时之后应该清除所有过期用户信息跳回到登录。图表类业务渲染,我们可以通过下面的顺序来实现。

2025-01-13 01:51:41 597

原创 【HM-React】07. 登录模块

实现步骤代码实现表单校验实现实现步骤代码实现获取登录表单数据实现步骤代码实现实现步骤Axios配置Redux实现登录逻辑token持久化封装存取方法实现持久化逻辑刷新浏览器,通过Redux调试工具查看token数据路由鉴权实现实现步骤代码实现

2025-01-13 01:46:08 820

原创 【HM-React】06. 项目前置准备

CRA是一个底层基于webpack快速创建React项目的脚手架工具。

2025-01-13 01:39:43 294

原创 【HM-React】05. ReactRouter记账本

使用CRA创建项目,并安装必要依赖,包括下列基础包。

2025-01-12 22:13:07 881

原创 【HM-React】04. ReactRouter基础

路由系统中的多个路由之间需要进行路由跳转,并且在跳转的同时有可能需要传递参数进行通信。

2024-12-29 19:52:32 279

原创 【HMReact】03. Redux

Redux 是React最常用的集中状态管理工具,类似于Vue中的Pinia(Vuex),可以独立于框架运行作用:通过集中管理的方式管理应用的状态。

2024-12-24 22:44:57 846

原创 【HM-React】02. React基础-下

概念:自定义Hook是以use打头的函数,通过自定义Hook函数可以用来实现逻辑的封装和复用// 封装自定义Hook// 问题: 布尔切换的逻辑 当前组件耦合在一起的 不方便复用// 解决思路: 自定义hook// 可复用的逻辑代码value)// 哪些状态和回调函数需要在其他组件中使用 returnreturn {value,toggle// 封装自定义hook通用思路// 1. 声明一个以use打头的函数// 2. 在函数体内封装可复用的逻辑(只要是可复用的逻辑)

2024-12-02 21:04:00 1289

原创 【HM-React】01. React基础-上

{message}

2024-11-22 12:25:39 1050 1

原创 【框架前置】02. 数据管理平台实战

了解前后端分离项目中 token 的作用在删除最后一页,最后一条时有 Bug。

2024-11-16 18:00:42 739

原创 【框架前置】01. AJAX入门

如下对象取值的方式哪个正确?A: obj.aB: obj()a哪个赋值会让浏览器解析成标签显示?哪个是获取输入框值的方式?哪个是用于获取标签内容?A: theP.innerHTML = ‘内容’哪个是数组的映射方法?B: arr.map数组转字符串并指定拼接符的是哪个?函数传参的方式哪个是正确的?A:showAlert(‘消息’, ‘类名’)以下哪套代码可以实现对象属性的简写?以下代码的值是多少?A:‘成年了’B:‘未成年’以下哪个方法可以添加一个额外类名?

2024-11-16 17:53:33 1095

原创 【JS学习】15. JS进阶-深浅拷贝等

首先浅拷贝和深拷贝只针对引用类型浅拷贝:拷贝的是地址如果是简单数据类型拷贝值,引用数据类型拷贝的是地址 (简单理解: 如果是单层对象,没问题,如果有多层就有问题)

2024-11-14 01:00:53 735

原创 【JS学习】14. JS进阶-OOD进阶

了解构造函数原型对象的语法特征,掌握 JavaScript 中面向对象编程的实现方式,基于面向对象编程思想实现 DOM 操作的封装。

2024-11-14 01:00:03 837

原创 【JS学习】13. JS进阶-OOD

了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。

2024-11-13 02:22:04 725

原创 【JS学习】12. JS进阶-作用域&闭包

学习作用域、变量提升、闭包等语言特征,加深对 JavaScript 的理解,掌握变量赋值、函数声明的简洁语法,降低代码的冗余度。

2024-11-13 02:21:27 981

原创 【JS学习】11. web API-正则

元素.classList.contains() 看看有没有包含某个类,如果有则返回true,么有则返回false。// const strEnd = str.replace(/前端/, 'web') 只能替换一个。// const strEnd = str.replace(/前端/, 'web') 只能替换一个。表示字符的范围,定义的规则限定在某个范围,比如只能是英文字母,或者数字等等,用表示范围。// 用户名可以输入英文字母,数字,可以加下划线,要求 6~16位。

2024-11-05 16:06:23 341

原创 【JS学习】10. web API-BOM

history (历史)是对象,主要管理历史记录, 该对象与浏览器地址栏的操作相对应,如前进、后退等。location (地址) 它拆分并保存了 URL 地址的各个组成部分, 它是一个对象。map 也称为映射。**特性:**以键值对的形式存储,并且存储的是字符串, 省略了window。**问题:**因为本地存储里面取出来的是字符串,不是对象,无法直接使用。**解决:**需要将复杂数据类型转换成 JSON字符串,在存储到本地。**作用:**join() 方法用于把数组中的所有元素转换一个字符串。

2024-11-05 16:04:45 866

原创 【JS学习】09. web API-DOM进阶

进一步学习 DOM 相关知识,实现可交互的网页特效。

2024-11-05 15:46:10 426

原创 【JS学习】08. web API-事件进阶

进一步学习 事件进阶,实现更多交互的网页特效,结合事件流的特征优化事件执行的效率。

2024-11-05 15:45:03 397

原创 【JS学习】07. web API-事件

的第2个参数是函数,这个函数会在事件被触发时立即被调用,在这个函数中可以编写任意逻辑的代码,如改变 DOM 文本颜色、文本内容等。译成中文是【点击】的意思,它的含义是监听(等着)用户鼠标的单击操作,除了【单击】还有【双击】是 DOM 对象专门用来添加事件监听的方法,它的两个参数分别为【事件类型】和【事件回调】。任意事件类型被触发时与事件相关的信息会被以对象的形式记录下来,我们称这个对象为事件对象。事件回调函数的【第1个参数】即所谓的事件对象,通常习惯性的将这个对数命名为。

2024-11-04 00:55:08 654

原创 【JS学习】06. web API-DOM

知道 ECMAScript 与 JavaScript 的关系,Web APIs 是浏览器扩展的功能。严格意义上讲,我们在 JavaScript 阶段学习的知识绝大部分属于 ECMAScript 的知识体系,ECMAScript 简称 ES 它提供了一套语言标准规范,如变量、数据类型、表达式、语句、函数等语法规则都是由 ECMAScript 规定的。浏览器将 ECMAScript 大部分的规范加以实现,并且在此基础上又扩展一些实用的功能,这些被扩展出来的内容我们称为 Web APIs。

2024-11-02 22:37:26 632

原创 【JS学习】05. JS基础语法-对象

知道对象数据类型的特征,能够利用数组对象渲染页面。

2024-11-01 02:22:53 723

原创 【JS学习】04. JS基础语法-函数

声明(定义)一个完整函数包括关键字、函数名、形式参数、函数体、返回值5个部分。

2024-11-01 01:57:08 441

原创 【JS学习】03. JS基础语法-for&数组

script > // 1. 语法,使用 [] 来定义一个空数组 // 定义一个空数组,然后赋值给变量 classes // let classes = [];// 2. 定义非空数组 let classes = [ '小明' , '小刚' , '小红' , '小丽' , '小米' ] </ script >// 1. 语法,使用 [] 来定义一个空数组。

2024-11-01 01:55:53 797

原创 【JS学习】02. JS基础-运算符&语句

理解什么是流程控制,知道条件控制的种类并掌握其对应的语法规则,具备利用循环编写简易ATM取款机程序能力。

2024-10-31 03:26:02 872

原创 【JS学习】01. JS基础-基础语法

JS 是一种运行在客户端(浏览器)的编程语言。

2024-10-31 01:02:13 988

原创 【代码随想录21】回溯03

其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。,用以表示一个 IP 地址,返回所有可能的。返回的解集中,子集可以按。返回该数组所有可能的子集(幂集)。正好由四个整数(每个整数位于。之间组成,且不能含有前导。给定一个只包含数字的字符串。,这些地址可以通过在。

2024-07-27 00:21:52 333

原创 【代码随想录20】回溯02

如果至少一个数字的被选数量不同,则两种组合是不同的。中的每个数字在每个组合中只能使用。分割成一些子串,使每个子串都是。是正着读和反着读都一样的字符串。,并以列表形式返回。中可以使数字和为目标数。对于给定的输入,保证和为。给定一个候选人编号的集合。解集不能包含重复的组合。中所有可以使数字和为。所有可能的分割方案。

2024-07-25 19:44:13 345

原创 【代码随想录19】回溯01

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。该列表不能包含相同的组合两次,组合可以以任何顺序返回。的字符串,返回所有它能表示的字母组合。所有可能的有效组合的列表。

2024-07-24 18:41:27 492

原创 【代码随想录18】二叉树08

给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]输入:nums = [1,3]输出:[3,1]解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。nums按严格递增顺序排列。

2024-07-23 20:19:10 952

原创 【代码随想录17】二叉树07

给定二叉搜索树(BST)的根节点root和要插入树中的值value,将值插入二叉搜索树。返回插入后二叉搜索树的根节点。输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。你可以返回任意有效的结果。输入:root = [4,2,7,1,3], val = 5输出:[4,2,7,1,3,5]输入:root = [40,20,60,10,30,50,70], val = 25。

2024-07-22 22:44:48 935

原创 【代码随想录16】二叉树06

给你一个含重复值的二叉搜索树(BST)的根节点root,找出并返回 BST 中的所有众数(即,出现频率最高的元素)。如果树中有不止一个众数,可以按任意顺序返回。结点左子树中所含节点的值小于等于当前节点的值结点右子树中所含节点的值大于等于当前节点的值左子树和右子树都是二叉搜索树输入:root = [1,null,2,2]输出:[2]输入:root = [0]输出:[0]树中节点的数目在范围[1, 104]内**进阶:**你可以不使用额外的空间吗?

2024-07-20 21:52:30 335

原创 【代码随想录05】二叉树05

给你两棵二叉树:root1和root2。想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不为null 的节点将直接作为新二叉树的节点。返回合并后的二叉树。合并过程必须从两个树的根节点开始。输入:root1 = [1,3,2,5], root2 = [2,1,3,null,4,null,7]输出:[3,4,5,5,4,null,7]

2024-07-19 23:36:50 548

原创 【代码随想录14】二叉树04

的路径,这条路径上所有节点值相加等于目标和。是同一棵树的后序遍历,请你构造并返回这颗。路径总和等于给定目标和的路径。,请构造二叉树并返回其根节点。假设二叉树中至少有一个节点。和一个表示目标和的整数。是指没有子节点的节点。是指没有子节点的节点。是二叉树的中序遍历,

2024-07-18 22:01:50 652

原创 【代码随想录13】二叉树03

的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。给定一个二叉树,判断它是否是高度平衡的二叉树。的左右两个子树的高度差的绝对值不超过 1。,返回所有从根节点到叶子节点的路径。给你一个二叉树的根节点。是指没有子节点的节点。,返回所有左叶子之和。,求出该树的节点个数。

2024-07-17 21:16:05 517

原创 【代码随想录12】二叉树02

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。是指从根节点到最远叶子节点的最长路径上的节点数。**说明:**叶子节点是指没有子节点的节点。本题属于二叉树的基础题目,需要牢牢掌握。本题属于二叉树的基础题目,需要牢牢掌握。,翻转这棵二叉树,并返回其根节点。给定一个二叉树,找出其最小深度。给你一棵二叉树的根节点。给你一个二叉树的根节点。, 检查它是否轴对称。

2024-07-16 23:24:09 449

原创 【代码随想录11】二叉树01

本题属于二叉树的基础题目,需要牢牢掌握。本题属于二叉树的基础题目,需要牢牢掌握。本题属于二叉树的基础题目,需要牢牢掌握。给你一棵二叉树的根节点。给定一个二叉树的根节点。

2024-07-15 23:04:25 261

原创 【代码随想录10】栈与队列02

本题可以创建单调队列,队首始终是滑动窗口中最大的元素。在窗口移动时,如果移出的元素是最大元素,那么队首元素出列。如果移入的元素比队尾元素小,则队尾元素出列,直到比队尾元素大。这样就保证了队列的元素单调递减。可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。每个运算对象可以是整数,也可以是另一个逆波兰表达式。滑动窗口每次只向右移动一位。两个整数之间的除法只保留整数部分。

2024-07-12 22:18:40 368

原创 【代码随想录09】栈与队列01

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(在完成所有重复项删除操作后返回最终的字符串。在 S 上反复执行重复项删除操作,直到无法继续删除。,判断字符串是否有效。

2024-07-12 22:16:03 279

原创 【代码随想录08】字符串part2

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。输入:输入共包含两行,第一行为一个正整数 k,代表右旋转的位数。第二行为字符串 s,代表需要旋转的字符串。字符串的第一个匹配项的下标(下标从 0 开始)。输出:输出共一行,为进行了右旋转操作后的字符串。中使用至少一个空格将字符串中的。

2024-07-11 22:10:19 320

原创 【代码随想录07】344.反转字符串 541. 反转字符串II 54.替换数字

给定一个字符串 s,它包含小写字母和数字字符,请编写一个函数,将字符串中的字母字符保持不变,而将每个数字字符替换为number。例如,对于输入字符串 “a1b2c3”,函数应该将其转换为 “anumberbnumbercnumber”。编写一个函数,其作用是将输入的字符串反转过来。对于输入字符串 “a5b”,函数应该将其转换为 “anumberb”字符串有很多库函数可以用,对于字符串翻转的话,尽量还是不用库函数。输出:打印一个新的字符串,其中每个数字字符都被替换为了number。样例输入:a1b2c3。

2024-07-10 17:08:51 346

【Leetcode刷题笔记04】24. 两两交换节点 19. 删除结点 07. 链表相交 142. 环形链表 II.md

内容概要:这篇笔记包含4道LeetCode典型链表算法题,分别是24.两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07.链表相交和142.环形链表II。记录了清晰的文字题解+图示以及Java参考代码。 适合人群:链表算法感兴趣的程序员或学生,想要打好数据结构与算法基础的人。 能学到什么:掌握链表典型题目的解题思路,使用双指针法解决实际问题;学习链表图解分析方法, TRAIN思维方式。 阅读建议:建议边看文字解析边想象图示,再对比代码理解实现。多做实战练习,逐步深入掌握链表算法技巧。

2024-01-13

【Leetcode刷题笔记03】203.移除链表元素 707.设计链表 206. 反转链表.md

内容概要:本文包含三道LeetCode链表算法题的刷题笔记,分别是203.移除链表元素、707.设计链表和206.反转链表,记录了详细的题目解析思路以及Java语言的参考代码。 适合人群:学习算法和数据结构的程序员或学生,尤其是想系统学习链表操作的人。 能学到什么:掌握链表虚拟头节点设置方法;练习链表基本操作函数如增删查改;学习链表反转等经典算法的代码实现。 阅读建议:链表算法需要在脑海中模拟指针移动过程,建议边调试代码,边想象链表变化。多做练习,掌握链表操作方法,并应用到更复杂算法题中。

2024-01-13

【Leetcode刷题笔记02】977.有序数组的平方 209.长度最小的子数组 59.螺旋矩阵II.md

内容概要:本文包含三道LeetCode算法题的刷题笔记,分别是977.有序数组的平方、209.长度最小的子数组和59.螺旋矩阵II,记录了详细的题目解析思路以及Java语言的参考代码。 适合人群:学习算法和数据结构的程序员或学生,想要通过LeetCode来提高编程能力的人。 能学到什么:掌握双指针技巧在数组和滑动窗口问题中的应用;了解区间设置的技巧,学会处理奇偶等边界条件;学习算法代码的编写方法。 阅读建议:仔细理解题目要求,分析清楚算法思路才开始编程;可以边学习参考代码,边自己实现对应算法。对比输出结果,分析差异找到bug。逐题逐步深入,重复训练,内化算法思维方式。

2024-01-13

【Leetcode刷题笔记01】704.二分查找 27.移除元素.md

内容概要:本文包含两道LeetCode算法题的刷题笔记,分别是704.二分查找和27.移除元素,记录了详细的题目解析思路以及Java语言的参考代码。 适合人群:学习算法和数据结构的程序员或学生,想要通过LeetCode来提高编程能力的人。 能学到什么:掌握二分查找算法的实现原理;了解双指针技巧在数组问题中如何应用;学习算法代码的编写方法。 阅读建议:仔细理解题目要求,分析清楚算法思路才开始编程;可以边学习参考代码,边自己实现对应算法。对比输出结果,分析差异找到bug。逐题逐步深入,重复训练,内化算法思维方式。

2024-01-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除