自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 React+Nest实现无感登录

access_token用于带到请求头进行权限请求当后端检测到过期时,通知前端acess_token已过期(401)前端携带refresh_token发起刷新请求,后端根据refresh_token发送新的access_token如果refresh_token也过期,就返回401给前端,通知前端退出登录

2024-09-05 14:27:59 1030

原创 每天写两道(数组篇)水果成篮、最小覆盖子串

你想要尽可能多地收集水果。思路:滑动窗口,使用map来存储种类和出现次数,如果map的size>2,则要移动窗口。你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组。所有字符的子串,则返回空字符串。,返回你可以收集的水果的。所有字符的最小子串。

2024-08-15 20:58:17 275

原创 每天写两道(数组篇)有序数组的平方、长度最小的子数组

当窗口内总和小于target,右指针右移;总和大于target,左指针右移;直到右指针移动到数组末尾。2.双指针:利用数组左右两边平方最大的特点。思路:1.两个for循环暴力解法:超时。如果不存在符合条件的子数组,返回。思路:1.直接map,然后排序。找出该数组中满足其总和大于等于。个正整数的数组和一个正整数。组成的新数组,要求也按。

2024-08-14 20:44:49 309

原创 每天写两道(数组篇)移除元素、删除有序数组的重复项

思路:前后两个指针进行交换,因为不需要考虑后面的元素,直接进行覆盖不需要交换。思路:双指针,count用于定位要放置的元素下标。元素的顺序可能发生改变。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。

2024-08-13 20:42:58 182

原创 每天写两道(数组篇)在排序数组中查找元素的第一个和最后一个位置、x的平方根

给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。使用二分法分开寻找左右边界值,同时寻找左右边界容易混淆且不好理解2.寻找右边边界(同理3.如果左右边界都为-1,说明target不在数组区间内;如果左边界>右边界,说明该数组区间内没有target;

2024-08-12 20:35:36 193

原创 每天写两道(七)二分查找、搜索插入位置

给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。numstarget= 949 出现在nums中并且下标为 4while循环递归。

2024-07-12 17:32:45 188

原创 React实战(一)初始化项目、配置router、redux、axios

初始化项目、配置router、配置redux、配置axios

2024-06-08 14:08:49 1279 1

原创 ReactRouter——路由配置、路由跳转、带参跳转、新route配置项

终于学到router了!今天主要是根据文档学的6.4相关的router,和现在常用的应该还是有点出入,肯定多看看就完事儿了!

2024-06-05 00:03:37 7420 1

原创 每天写两道(六)两数之和、二叉树的层序遍历

滑动窗口:美其名曰滑动窗口,就是两个for循环直接上!哈希map:用map,键存数组值,值存数组索引。

2024-06-02 23:10:32 305

原创 React(五)useEffect、useRef、useImperativeHandle、useLayoutEffect

只能说是对useEffect相见恨晚,这个钩子好牛b今天写的较为简略QAQ。

2024-06-02 17:53:33 1424 1

原创 每天写两道(五)合并两个有序链表、最长回文子串

将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

2024-06-01 22:53:34 529

原创 每天写两道(四)最大子数组和、手撕快排

给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。6连续子数组 [4,-1,2,1] 的和最大,为 6。动态规划,可以理解为抱桃子找西瓜的操作,每次移动都和前一组子数组之和进行比较,如果当前的一个值就大于之前的值加现在的值了,那就直接抛弃前面的子数组,从当前组开始计数。

2024-05-31 00:07:54 387

原创 每天写两道(三)k个一组翻转链表、15.三数之和

给你链表的头节点head,每k个节点一组进行翻转,请你返回修改后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。利用的思想完成翻转操作设置一个哨兵节点,使得每次k个一组都能和前一节点相连接k个一组的链表头为start,尾为end。

2024-05-29 23:09:16 314

原创 每天写两道(二)LRU缓存、数组中最大的第k个元素

请你设计并实现一个满足约束的数据结构。实现LRUCachecapacitykey-1keyvaluekey-valuecapacity函数get和put必须以O(1)的平均时间复杂度运行。双向链表+一个哨兵节点,使用map记录(key,node)(图和思路都是偷力扣大佬的)

2024-05-28 23:36:45 562

原创 每天写两道(一):无重复字符的最长子串、反转链表

给定一个字符串s,请你找出其中不含有重复字符的的长度。3因为无重复字符的最长子串是"abc",所以其长度为 3。

2024-05-27 23:55:59 357

原创 React(五)用useReducer和useContext写简易redux

这里只是简单的写了个redux那种全局状态库的感觉,但是稍微复杂一点还需要涉及到多个子仓库的整合那样,梭哈,也还需要细分出action.js和constant.js。。这样才算是规范后续再添加吧!

2024-05-27 00:22:59 346

原创 React(四)memo、useCallback、useMemo Hook

一定要确保使用比较函数的时间比重新渲染要快,不然写个比较函数还浪费那么久时间简直白白干了// ...return (})注意:比较函数内一定要将props的所有prop都比较到,包括函数。避免在中进行深比较,除非你 100% 确定你正在处理的数据结构具有已知有限的深度。深比较可能会变得非常缓慢,并且如果有人稍后更改数据结构,这可能会卡住你的应用数秒钟。简而言之就是少用,有那个功夫用用hook肯定更快啦。

2024-05-21 22:20:31 1161

原创 React(三)useReducer、useContext钩子的使用,redux库的初步使用

useContext是一个用于读取和订阅组件中的context的 Hook当组件嵌套过深又需要传递数据时,一层一层的传props是不现实的,Context允许父组件向其下层无论多深的任何组件提供信息,而无需通过 props 显式传递。这样就需要useContext,在顶层组件创建context,将context标签包裹住需要传值的子组件,这样嵌套在里面的组件就可以获取到这个context的值了本篇文章介绍了useReducer,useContext以及rudux的简单应用。

2024-05-20 22:56:09 1720

原创 初识React(二)响应事件、state、useState

组件通常需要根据交互更改屏幕上显示的内容。输入表单应该更新输入字段,单击轮播图上的“下一个”应该更改显示的图片,单击“购买”应该将商品放入购物车。组件需要“记住”某些东西:当前输入值、当前图片、购物车。在 React 中,这种组件特有的记忆被称为state与vue的响应式原理不同,vue通过proxy劫持数据的getter和setter实现响应式,如vue3的reactive()State的创建使用了const [变量名,变量setter] = useState(初始值)的形式定义响应式数据。

2024-04-07 23:54:39 938

原创 初识React(一)从井字棋游戏开始

已经学过一门框架了,再看react的话只是思维不太一样,在react里也能看到蛮多vue仿鉴的东西,所以最开始的基础就不像以前一样写的又慢又细了这个入门井字棋游戏概括了很多的基础知识1.jsx的函数式编程2.父子组件的props传递3.列表的渲染5.条件渲染6.响应事件速度速度,再不学学不完了QAQ。

2024-03-25 18:27:40 757

原创 初识webpack(二)解析resolve、插件plugins、dev-server

用于在文件中根据resolve.mainFiles配置中指定的文件顺序查找index接下来只详细写一下两个配置项,比较常用。

2024-02-14 18:30:53 1734 1

原创 初识webpack(一)概念、入口配置、输出配置、loader等

在配置文件的output里设置assetModuleFilename。可以设置固定名称(不建议),也可以设置相关占位符,如。

2024-01-31 21:08:09 1289

原创 NodeJS(二):npm包管理工具、yarn、npx、pnpm工具等

在npm v3时期出现的包管理工具弥补了很多早期npm的缺陷,解决了npm v5才解决的问题,例如:使用 yarn.lock 等机制,锁定版本依赖;利用缓存机制,实现了离线模式等等。

2023-12-01 17:57:38 2741

原创 NodeJs(一):初识nodejs、模块化、CommonJS、ESModule等

模块化开发是将程序划分为一个个小的模块结构,在各自的模块中编写自己的逻辑结构,有自己的作用域,不会造成全局变量的污染。在这个模块结构中,可以将自己的变量、函数、对象等导出给其他模块使用,也可以引入其他模块的变量、函数、对象等为自己所用。在早期js开发中,对于怎么样导入导出没有具体的规范,大家自发的建立起CommonJS、amd/cmd等模块开发规范,直到ES6的ESModule给出了官方的模块化规范。

2023-11-26 17:11:15 1378

原创 Vue3通用后台管理系统(四):使用Nodejs实现后端功能

使用node实现后端功能是参考这篇博客写的,我对node的详细功能其实还不太清晰。

2023-11-22 22:53:39 892

原创 Vue3后台通用管理系统(三):用户登录与跳转、全局路由守卫

退出登录即删除token、删除本地存储的menulist、删除tagsList(存储在menuStore中,需要引入再操作)这个项目功能感觉好少。后面想把后端部分重新用node和mysql实现一下 加油。获取对应的menulist后存储到store中,通过本地存储。点击commonHeader里的退出退出登录,返回到登录页。需要使用到cookie,若cookie存在即为登录状态。点击发送登录请求,将账号密码传给mock。未登录时不能跳转到除登录页以外的页面;登录后不能再跳转到登录页;

2023-11-19 23:55:54 4374

原创 Vue3后台通用管理系统(二):header面包屑的实现、tags标签的实现、用户管理页的实现

当刷新网页后,路由还是保持不变,但currentItem中存储的当前路径会清空变为默认数据,因此需要在每次项目刷新后,判断当前路径,将tabList中符合当前路径的item对象传给currentItem。使用template中的作用域插槽,它的作用是在外部获取组件内的数据 ,这里是为了获取这一行的数据,我们让slot-scope值为scope,那么由scope.row就可以得到数据。接收一个回调函数,或返回 Promise。,如果是,就将路由跳转到前一个tag,同时要更改面包屑的当前路径数据。

2023-11-18 20:11:50 1316

原创 Vue3后台通用管理系统(一):header、aside组件的基本搭建、首页home组件的实现

使用vue3+ts+pinia+element-plus搭建一个通用的后台管理系统(没准后面会改成特定的功能)header、aside是非路由组件,中间的部分用于放置不同的路由组件,例如home、user等。

2023-11-11 15:57:41 2005

原创 Vue3+TS:看板——todolist小案例

脑子碎碎的,后面应该开始做个项目再巩固巩固就能找面试了吧惯例写项目之前先写个todolist整理一下思路虽然这个项目很简单,但在完成的时候还是踩到了超多的坑,刚开始准备把数据存储在aside组件里,content组件可以通过miit插件实现兄弟组件通信,但是数据传过去了之后不是响应式的,又准备把数据放到app.vue上,用父子通信就好解决了;写着写着defineProps、ts又忘了,马上滚回去看自己写的博客。。这个todolist只用了自定义事件 父子通信,感觉还是蛮有收获的,就是感觉ts太恐怖啦。

2023-11-05 23:48:42 842

原创 Promise:手撕promise

向promise中传入一个函数executor,executor接受resolve和reject两种参数。在new Promise时,executor就会自动调用。继续下一步之前一定要搞懂promise的promise具有3种状态:pending(待定)、fulfilled(成功)、rejected(失败)初始状态为pending,得到resolve或reject函数调用后,状态变为fulfilled或rejected,这个状态是。

2023-11-01 23:44:30 79

原创 Pinia——Vue专属状态管理工具

Devtools 支持追踪 actions、mutations 的时间线在组件中展示它们所用到的 Store让调试更容易的 Time travel热更新不必重载页面即可修改 Store开发时可保持当前的 State插件:可通过插件扩展 Pinia 功能为 JS 开发者提供适当的 TypeScript 支持以及自动补全功能。支持服务端渲染Pinia更适合中、小型项目,大型项目还是更推荐使用vuexStore 是用定义的,它的第一个参数必须是独一无二的名字,

2023-10-31 19:24:50 799

原创 TypeScript(二)类、泛型(not end)

通过get和set帮助控制对象成员的访问(有点像vue2响应式的get、set机制了)protected 修饰的属性或方法是受保护的,它和 private 类似,区别是。是属于类自己的方法和属性,不能通过实例对象获取到,只有类本身能够获取。private 修饰的属性或方法是私有的,不能在声明它的类的外部访问。public 修饰的属性或方法是公有的,可以在任何地方被访问到,如果定义了两个相同名字的函数、接口或类,那么它们会合并成一个类型。在子类只能通过super访问父类私有的属性或方法。

2023-10-29 14:38:45 80

原创 TypeScript(一)类型声明、类型推断、联合类型、接口、函数、类型断言、类型别名、枚举

/ 1.====定义函数====// 1.函数声明:命名函数// 2.函数声明:匿名函数// 3.函数声明:完整写法。

2023-10-28 16:43:21 326

原创 Vue3(三)<script setup>语法糖的基本使用

script setup>是在单文件组件(SFC) 中使用组合式 API 的编译时语法糖。当同时使用 SFC 与组合式 API 时该语法是默认推荐。更少的样板内容,更简洁的代码。能够使用纯 TypeScript 声明 props 和自定义事件。更好的运行时性能 (其模板会被编译成同一作用域内的渲染函数,避免了渲染上下文代理对象)。更好的 IDE 类型推导性能 (减少了语言服务器从代码中抽取类型的工作)。

2023-10-26 12:39:49 288

原创 Vue3(二)生命周期、自定义hook、组合式api、新组件、vue3改变等

hook,本质是一个函数。自定义hook,就是将setup中使用的组合式函数进行封装,实现代码复用;与vue2的mixin类似;自定义Hooks是为了处理组件逻辑的一种模式。它可以让我们在不使用组件之间复制粘贴代码的情况下重用状态逻辑。它们以use开头。它们可以调用其他的hook。例如:实现获取鼠标坐标的函数,封装到文件中,组件需要就可以引入调用在hooks/usePoints.js中:// 自定义钩子 实现获取鼠标打点坐标x: 0,y: 0})// 实现鼠标打点})})

2023-10-25 21:34:45 275

原创 Vue3(一)setup、响应式ref、reactive、computed、watch、watchEffect

监视单个数据setup() {// 监视ref定义的数据 单个// 第一个参数:监视的数据;第二个参数:监视数据的回调;第三个参数:配置(immediate、deep)console.log('修改了age', newValue, oldValue)...监视多个数据// 监视ref定义的数据 多个 以数组形式console.log('name或age被修改了', newValue, oldValue);})监视ref定义的对象/数组数据//监视ref定义的对象/数组数据。

2023-10-22 17:52:37 720

原创 git的基本操作、如何将项目上传到仓库

git initgit clone {url} // 路径git add .git commit -m "description" // 引号内可以写上注释git pushgit status。

2023-10-18 19:19:59 305

原创 Vue2项目实战:尚品汇(五)个人中心页面、导航守卫、懒加载、结束

图片懒加载是指在网页中,当用户滚动页面时才加载图片的一种技术。相对于传统的图片加载方式,懒加载可以减少初始页面的加载时间,提高网站的响应速度。使用插件vue-lazyload实现图片懒加载下载插件:npm i vue-lazyload@1.3.3 -S。

2023-10-18 13:02:14 787

原创 Vue2项目实战:尚品汇(四)注册登录页面、提交订单和支付页面

图片懒加载是指在网页中,当用户滚动页面时才加载图片的一种技术。相对于传统的图片加载方式,懒加载可以减少初始页面的加载时间,提高网站的响应速度。使用插件vue-lazyload实现图片懒加载下载插件:

2023-10-17 13:27:49 838

原创 Vue2项目实战:尚品汇(三)商品详情界面、加入购物车成功界面、购物车界面

用户在搜索页点击商品图片就会跳转到商品详情页,商品信息根据商品id向服务器请求数据动态展示出。

2023-10-09 23:10:38 4415 3

空空如也

空空如也

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

TA关注的人

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