• 博客(73)
  • 资源 (1)
  • 收藏
  • 关注

翻译 一篇文章带你理解 React 中最“臭名昭著”的 useMemo 和 useCallback

作为一个 React 开发者,如果你一直觉得useMemo和这两个 Hook 比较难以理解,那么别害怕,事实上很多人都如此。我和其他公司很多的 React 开发者交流过,大多数对这两个 Hook 都是一知半解的状态。这篇文章就为你答疑解惑,为大家介绍这两个 Hook 的具体作用,它们的实现原理以及在实际开发中如何应用。我最喜欢的自定义 hook 之一是useTogglev);} , [ ]);注意这里的toggle函数使用了进行缓存。

2023-01-11 10:22:35 23

原创 Next.js | Jest + React testing library + Typescript 单元测试框架搭建及实现

单元测试和 E2E 测试作为前端项目健壮性的保障,在许多团队可能并没有足够的能力和资源去实现很好的自动化测试,但基本的了解还是必不可少的。最近在上手并集成单元测试到已有的 Next.js 项目中,网上的文档虽然很多,但实际使用的时候遇到的问题可谓五花八门,这篇文章可以帮助你快速的在 Next.js + TS 的环境中构建单元测试环境及进行单测的编写。

2023-01-11 10:18:57 508 1

原创 教你用 React Hook + Typescript 实现一个类型提示完整的高阶组件(HOC)

最近在对项目内的表单组件进行的优化,在实现高阶组件的过程中发现目前关于 react 高阶组件的文章都比较旧了,很多都是以类组件的形式去实现,与 Typescript 的结合使用也比较难找到示例。因此决定自己写一篇关于实现高阶组件的文章,希望简单直观的让大家学习到高阶组件的使用场景及封装方式。高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。高阶组件其实就是一个函数,这个。

2022-09-06 18:12:45 392

原创 提升用户体验,给你的模态弹窗加个小细节

大家在开发后台网站应用时,应该常常会使用到模态组件(Modal),也可以称为对话框组件。模态组件一般用于展示一些简单的操作,例如字段较少的表单编辑,或者删除确认框等。

2022-07-26 20:12:21 261

原创 uniapp (vite +vue3+ts+pinia) 搭配微信小程序云开发项目架构搭建-避坑指南

前言最近开始了项目旧改,将以前开发的一些校园小程序由 uniapp + vue2 版本升级为,unipp + vite + ts + vue3 的架构,顺便把代码质量提升一下。由于是单兵作战,我选择将以前的后端摒弃,选择了微信小程序云开发作为后端,这样可以将我的开发精力聚焦在小程序上。 但这么做也有如下两个缺点:使用了微信小程序云开发后,uniapp 只适用于编译成微信小程序,失去了跨端的能力。uniapp 使用云开发并不方便,尤其是使用了 typescript 后需要做大量的额外配置。综

2022-05-10 11:31:59 3537 3

原创 Next.js 网站部署踩坑经历小记及前端站点部署技巧

前言在入职两个月后,我开始了第一个完全由我一个人负责开发的网站项目。这个网站的用途是用于 宣传一个开源社区峰会 以及 沉淀峰会视频内容 ,在峰会进行期间还需要在网站进行 直播 。从网站的开发到部署上线,可谓是踩坑无数,最终实现的网站在这里 https://apisix-summit.org/背景由于时间有限,整体网站的架构是基于 vercel 的一个网站脚手架 virtual-event-starter-kit 之上进行开发,因此并不需要从头构建项目。这个脚手架使用的是 next.js 实现服务端渲

2022-04-30 15:38:11 3140

原创 前端工程师怎么写后端?试试 koa.js + Apache APISIX 吧~

前言两年前,我还是一个小白开发者。当时为了上线我开发的一个网站购买了一个学生服务器,并且安装了 linux 服务器的小白之友 宝塔面板 ,相信现在还有很多朋友买到服务器了第一件事就是装个宝塔。在宝塔面板中,我使用了内置的脚本快速的安装了 nginx + mysql + phpAdmin 全家桶。虽然很快就安装上去了,但是当时的我对于 nginx 一窍不通,在部署服务端功能的时候随便遇到一个小问题都能卡我一天,导致我最后折腾了快一周才把项目部署上去。作为一个前端开发,我有很多自己写的小项目都是通过 nod

2022-03-14 11:25:59 2745 1

原创 别害羞,开源社区真的很需要你,教你如何参与开源社区~

前言相信各位开发者多多少少会在实际开发的过程中会使用一些开源的技术,例如前端的 vue, react, 以及大量的第三方库如 echart,color.js, day.js 等等,后端就更多了,从到 api 网关到注册中心,微服务框架,日志服务等等。不知道有多少开发者有想过 为自己使用的开源项目贡献代码 呢? 反正我自己是一直都想为一个牛逼的开源项目做出贡献,甚至成为一个 commiter 。但是我相信大部分的开发者都和我一样觉得:”这么牛逼成熟的框架,有我什么事,我连用都用的磕巴,更何况去贡献代码呢?

2022-02-23 10:30:55 3026 1

原创 开发者真实锐评 CSDN 问答功能,可提升之处很有很多 ~

我认为目前国内的技术问答社区好用的还是空白,类似 stackoverflow 这种平台在国内是非常需要的,但是这种平台往往对于功能的要求不高,就是简单的问答。但是对于内容的要求很高,没有优秀的问答内容,没有乐于奉献的开发者参与,这样将会是一个恶性循环。应该倡导用户 **主动答题**,**高质量答题**,并且定期推出一些 **问答主题活动** ,这样才会有优秀的开发者在这里问问题,社区环境才会一步一步变好噢 ~

2022-02-12 10:55:29 510

原创 前端开发从零开始学Lua-开发环境搭建及基础语法介绍(对照JS)

Lua介绍Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组于 1993 年开发的,该小组成员有:Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo。Lua 不是一门很难的语言

2022-01-29 12:04:05 1608

原创 环境构建工具make介绍及makefile基础语法

前言在linux或unix环境中构建应用时,根据官方文档的指导,常常会使用到 make xxx 这个指令,在执行后就会为我们安装某个应用所需要的依赖,那么这个 make 到底是什么呢?make 是什么?make 是一个在软件开发中所使用的工具程序(Utility software),经由读取 “makefile” 的文件以自动化建构软件。它是一种转化文件形式的工具,转换的目标称为“target”;与此同时,它也检查文件的依赖关系,如果需要的话,它会调用一些外部软件来完成任务。顾名思义,make

2022-01-29 12:02:58 1468

原创 帮你早点下班~基于飞书API实现next.js网站内容自动生成实践

前言最近在公司里得到了一项任务,人事给了一个 飞书的职位表格 ,要求将里面的信息更新到官网上面去。其中涉及了已有岗位的信息更新,删除部分岗位和添加部分岗位。这种工作虽然简单,但是很琐碎,很麻烦。三十个岗位的 岗位列表 和 岗位详情 花了我一个早上去 更新及核对 。主要的工作量都在于 表格的数据结构和代码中的数据结构不同需要进行一个修改 以及 更新后数据后网站展示情况的核对。作为一个程序员当然得想办法优化一下整体的流程,正好本身就知道飞书是有开放api的,于是就开始琢磨着能不能基于飞书表格将内容自动化生

2022-01-29 12:00:49 1988

原创 如何在React中实现全局数据的状态持久化?一篇文章让你看懂状态持久化

前言????代码仓库链接 react-todo gitee仓库????在线预览效果 react-todo 开发进度# ????从零开始学React第一天~React基础框架的构建(Create React App+Tailwind css+Material ui)# ????从零开始学React第二天~React配置Eslint+路由导航的实现(react-router-dom)# ????从零开始学React第三天~React日期选择器组件开发+Dayjs的使用# ????从零开始学Reac

2022-01-21 11:34:00 1700

原创 一看就懂的JS内存管理及垃圾回收机制介绍及解析

前言最近在翻译外刊的时候,感觉很多好的文章翻译的时候不够地道,想为文章补充内容又担心准确度降低。莫得办法,最终我选择了以自己的大白话来总结一些翻译时的所学所想。这篇文章将会根据我最近翻译的几篇node.js相关的垃圾回收机制,循序渐进 的进行一个JS相关的内存管理机制和垃圾回收的运行原理及介绍,文章没有特别深入,适合点杯奶茶☕搭配目录食用~内存管理简介众所周知,咱们开发的程序在跑的使用都是需要用到内存来存储一些数据的,但是要是 随便存,乱存,瞎xx存 那肯定存的少,因此在存的时候就会选择一些合适的数

2022-01-18 16:02:46 952

原创 从零开始学算法的第三天~(删除链表的倒数第 N 个结点,无重复字符的最长子串,字符串的排列)

前言今天就是我 硬钢算法的第三天,我的基础真的很差。文章重在记录总结,我也很好奇我会坚持多久,我只有以写文章的形式记录每天刷的题才能让自己保持一个积极的态度,不然每次看一会就懈怠了????。只有看到大家的反馈我才能源源不断的坚持下去!过往文章:# ????‍????从零开始学算法的第一天~(二分查找,双指针,两数相加,最长回文子串)# ????‍????从零开始学算法的第二天~(最长公共前缀,有效的括号,移动零)刷题19. 删除链表的倒数第 N 个结点这题我觉得对我的提升很大,尤其是对快慢

2022-01-12 16:44:46 136

原创 从零开始学算法的第二天~(最长公共前缀,有效的括号,移动零)

前言今天就是我 硬钢算法的第二天,我的基础真的很差。文章重在记录总结,我也很好奇我会坚持多久,我只有以写文章的形式记录每天刷的题才能让自己保持一个积极的态度,不然每次看一会就懈怠了????。只有看到大家的反馈我才能源源不断的坚持下去!过往文章:????‍????从零开始学算法的第一天~(二分查找,双指针,两数相加,最长回文子串)刷题283. 移动零var moveZeroes = function(nums) { let left = 0,right = 0 while(ri

2022-01-12 16:43:12 146

原创 从零开始学算法的第一天~(二分查找,双指针,两数相加,最长回文子串)

前言元旦放假,????忘记把公司写的代码push到代码仓库了,导致react系列没法更新。于是就开个新坑算法系列。作为一个前端开发,数据结构和算法 一直是我最大的短板,也是心里很大的一个障碍,当初有尝试着刷leetcode,但是被一道题卡着一天,直到怀疑自己是不是智商有问题 的那种感觉至今还记忆犹新。但是昨天晚上睡觉前 冴羽 大佬突然加了我微信,他看了我的年终总结并且给了我一些鼓励,我备受振奋,整晚都热血沸腾哈哈哈~今天就是我 硬钢算法的第一天,我的基础真的很差。文章重在记录总结,我也很好奇我会坚持

2022-01-04 15:16:02 133

原创 从零开始学React第五天~实现hook相关性能优化

前言今天是学习react的第五天啦,我的第一个小目标是将平时使用的todo清单软件通过react在web端一比一的实现所有功能!前面写的文章都会放在前言中:????代码仓库链接 react-todo gitee仓库????在线预览效果 react-todo 开发进度# ????从零开始学React第一天~React基础框架的构建(Create React App+Tailwind css+Material ui)# ????从零开始学React第二天~React配置Eslint+路由导航的实现

2021-12-31 15:59:21 194

原创 从零开始学React特别篇~Redux+Redux Toolkit介绍与使用

前言首先我原本是一个vue开发者,会有vuex的使用经验,虽然说可能上手会快,但是也有可能会被框架包袱所限制为了写好今天这篇,看了特别多文档。首先吐槽一下,最开始的时候我看的是这个文档 redux中文文档 我还想着这个中文文档真的是给人类看的吗?翻译成这样我还不如去看英文文档。每个字我都认识,连起来就看不懂了。后面才知道上面那个不是官网,这个 redux中文官网 才是正版。针不戳,刚开始就踩坑。今天是学习react的第七天,我的第一个小目标是将平时使用的todo清单软件通过react在web端

2021-12-31 15:34:11 1178 1

原创 从零开始学React第四天~实现一个好看的弹窗日历组件

前言今天是学习react的第四天啦,我的第一个小目标是将平时使用的todo清单软件通过react在web端一比一的实现所有功能!前面写的文章都会放在前言中:????代码仓库链接 react-todo gitee仓库????在线预览效果 react-todo 开发进度# ????从零开始学React第一天~React基础框架的构建(Create React App+Tailwind css+Material ui)# ????从零开始学React第二天~React配置Eslint+路由导航的实现

2021-12-29 08:38:02 890

原创 从零开始学React第三天~React日期选择器组件开发+Dayjs的使用

前言今天是学习react的第三天啦,我的第一个小目标是将平时使用的todo清单软件通过react在web端一比一的实现所有功能!建议拉取项目代码搭配食用效果更佳 react-todo gitee仓库前面写的文章都会放在前言中:# vue转react的第一天~React基础框架的构建(Create React App+Tailwind css+Material ui)# ????Vue转React的第二天~React配置Eslint+路由导航的实现(react-router-dom)开发任务

2021-12-27 11:43:37 1132

原创 从零开始学React第二天~React配置Eslint+路由导航的实现(react-router-dom)

前言今天是学习react的第二天啦,我的第一个小目标是将平时使用的todo清单软件通过react在web端一比一的实现所有功能!如果想要看实现的效果可以通过 react-todo gitee仓库 拉取代码查看噢前面写的文章都会放在前言中:# vue转react的第一天~React基础框架的构建(Create React App+Tailwind css+Material ui)配置eslint在今天的开发开始前,我想先配置一下eslint实现一个代码格式的检查,避免从一开始学习react我的

2021-12-25 23:53:46 428

原创 从零开始学React~React基础框架的构建(Create React App+Tailwind css+Material ui)

前言今天是作为一个vue开发者学习react的 第一天,我决定将学习的全过程记录下来,接下来的每一天我都会抽一个小时的时间进行react的学习。通过过往vue的学习来映射到react上,学习彼此的优秀之处。.我的第一个小目标是将平时使用的todo清单软件通过react在web端一比一的实现所有功能!我在学习新东西的时候习惯 任务驱动式 的去做,通过新语言开发自己喜欢的东西才能更加快速的去上手。创建项目首先根据官方文档推荐,使用 create-react-app 脚手架创建一个新项目npx cr

2021-12-25 23:01:31 883

原创 别愁毕设啦~肝一个月做了个百搭的开源社区小程序

前言作为一个即将毕业的大学生,我谙晓多少基础不好的同学做毕设的苦恼。在我们自己的专业,一般毕设都是以 小程序或者网站 的形式开发,必须一个人进行前后端的全过程的开发。因此我就构思能不能开发一个覆盖面比较广,能够达到快速改造,快速迁移部署,且技术栈相对容易的开源小程序。最初我想着开发的是一个商城小程序,但是商城的话改造性不强,所以我就选择了开发一个更加百搭的的 社区论坛小程序。为什么说百搭呢,毕设当然需要有一定的特殊性,但是这又和小程序需要百搭 相悖,社区小程序的话可以非常方便的改成各种各样的其他类型小

2021-12-23 23:30:37 1010 1

原创 原生小程序也要写的爽~教你如何优雅的在小程序中进行模块化

前言继# 原生小程序开发也要写的爽~教你如何优雅的在小程序中进行异步编程 这篇文章后的续集来了,还是一样通过最近的一些开发经验进行浓缩总结,探索一些可以提升微信小程序开发效率和降低心智负担的方法。这一篇文章就讲讲在微信小程序中如何优雅地进行模块化处理ES6和commonJS的选择首先在微信小程序中不论是 ES6 或者是 commonJS 模块化语法都是支持的,在传统的web项目中我个人是习惯统一使用 ES6 模块化语法进行开发的。在最初我也是将小程序中所有的通用方法抽离成单独的文件,并使用expo

2021-12-21 09:41:28 397

原创 原生小程序开发也要写的爽~教你如何优雅的在小程序中进行异步编程

前言最近开始写一个开源的云开发社区小程序,在写的过程中慢慢的摸索了一些对于开发和测试的过程中又帮助的奇技淫巧。这篇文章讲一下在 原生小程序中如何优雅的捕捉异步方法的异常。传统方法在ES7之后,我们往往使用 async await 语法来进行异步编程,如果我们要捕捉异常的话一般有以下两种方式try catchasync func(){ //do something}try { const res = await func()} catch (error) { //ha

2021-12-17 18:14:26 132

原创 血泪合集,uniapp超长实践精华总结~

前言在经历了多个uniapp小程序项目开发后,我将我所有的踩坑实战经验复盘总结,以下内容仅针对uniapp开发微信小程序的场景,其中除了uniapp外还有一些小程序开发的注意点,希望这篇文章可以帮助大家避坑。以下全文干货(干到口渴那种)uniapp简介先放官方介绍,如果熟悉已经了解uniapp的同学可以跳过。uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/快手/钉

2021-12-17 16:37:27 2328

原创 实践总结|vue2升级vue3全面对照迁移示例

前言自从vue3 <script setup> 语法糖出现后,我的个人小项目和毕业设计都开始使用 vue3+ts 进行开发,在经历了很多的业务开发和踩坑经历后,我将vue2项目迁移升级vue3写了一个阶段性总结!请大家在真正进行项目迁移前务必先看下官方迁移的文档,以下内容尽量讲vue官方文档中比较难找到或者没有讲过的内容。vue2迁移vue3官网文档介绍以下内容和示例统一使用的是 vue3 composition api <script setup> 语法糖的写法,我会使用简

2021-10-29 14:44:27 1277 2

原创 我竟然用一个小时就做了个小程序!云开发+CMS实践探索

前言在19年疫情比较严重的时候,在家里的我想要为前线的医护人员打打气,于是就开始做一些跟战疫相关的海报,并且将这些海报分享到了一些社交平台,比如某红书和某博。在这些文章有了一定热度之后就开始有人问我要图片,最初的时候人比较少我还可以一个一个私发,后来问的人越来越多,我也没办法一个一个的去回复,所以我就想办法用自己的技术解决这一个问题。需求分析首先我认为这个小程序需要非常简单,只有一个页面,以一个列表的形式展示海报和一些设计素材,然后有一个下载按钮,点击下载就直接保存到手机相册。列表还得有上滑加载和下拉

2021-10-06 19:04:16 403

原创 vue3+ts获取第三方组件内类型并在ref中使用

前言最近在将项目从vue2重构至vue3+ts,在其中遇到了很多的坑,这篇文章讲一下如何获取第三方组件的类型,并结合 ref api来获取子组件的节点数据代码实现首先讲一下vue3.x版本composition-api,要实现和vue2中$ref获取元素节点的方法,我们使用elementUI中的组件来举例在vue2版本中获取方式如下<template> <el-tree ref="treeRef" > </el-tree></template&g

2021-10-03 12:13:12 3272 1

原创 js中object,map和weakMap的简析和区别

MapMap 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。Object和map的比较Objects 和 Maps 类似的是,它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值。因此(并且也没有其他内建的替代方式了)过去我们一直都把对象当成 Maps 使用。不过 Maps 和 Objects 有一些重要的区别,在下列情况里使用 Map 会是更好的选择一个 Map的键可以是任意值,包括函数、对象或任意基本类型。而一个Object.

2021-10-02 17:20:47 388

原创 vite+vue3+ts实战项目,教你实现一个网页版的typora!(前端篇)

前言​ 最近肝了几天写了一个用于管理和编辑我们小团队的一个md文档的网页版typora,在过去我们的知识归纳都是各自使用typora编辑,编辑后每周定时提交文档,由一个人汇总后发布到csdn等平台。​ 但是这样做在文档出现问题后发布的文章如果需要持续更新的话无法让团队中的其他人看到,且使用typora保存的图片都是本地的,配置图床也没有那么方便,所以干脆花点时间整理了一下需求,想着做一个网页协作版的typora,有一个基本的账号机制,一个文档可以大家一起编辑,但是不是协作文档那种同时编辑,而是一个人

2021-10-01 19:31:23 3193

原创 vue3+ts+axios请求封装使用

请求封装实际使用中可以根据项目修改,比如RESTful api中可以自行添加put和delete请求,ResType也可以根据后端的通用返回值动态的去修改//http.tsimport axios from "axios"import NProgress from "nprogress"import type { App } from "vue"// const CancelToken = axios.CancelToken// const source = CancelToken.sour.

2021-10-01 18:03:45 1689 1

原创 vue3 setup的简单理解和应用

前言vue3官方文档更新的第一个就是组合式API,那就是说明这是非常重要的,最近我也刚入手vue3,就记录下自己刚用setup函数的一点点心得在vue2的时候,当我们的组件功能比较多的时候,对于相同逻辑的关注点的相关代码会比较分散,会增加我们对组件的理解以及维护。例如如下代码:可能这觉得没什么,但是如果分布在(data、computed、methods、watch、生命周期钩子) 等,那所展现的图片就可能会这样而这样一套代码的组件会变得非常难以阅读,因为我们很难搞清楚 哪些代码是和哪些代码在一

2021-09-29 09:20:54 1485

原创 node.js洋葱圈模型介绍及中间件的简单实现

中间件前言最近在学习node.js过程中,发现到实际项目中,有很多琐碎的细节工作要完成,对于开发者而已,开发者只需要注重其中的业务开发上,不用接触到那么多细节的处理,以达到提升开发效率的目的,这时候我们就要引入中间件了。含义早先前的中间件定义是在操作系统上为应用软件提供服务的计算机软件,它既不是操作系统,也不是应用软件,只是为了应用软件更好,更方便地使用底层服务。如今node.js中中间件的含义,就是为了封装HTTP请求中细节处理的中间件,就是一种功能的封装方式,使开发者可以脱离这部分细节,专注在

2021-09-28 09:58:49 447

原创 Springboot +AOP日志系统

1、前言一个好的日志信息整理与划分能让我们更好的定位到错误的地方,如果我们使用调试器断点机制,让问题复现,并由此定位问题并解决问题。大多时候我们遇到比较难定位的bug的时候都会这么做,如果是普通的bug相信用 System.out.println( ) 就能解决大部分的疑难杂症(狗头)。但当我们服务上线时,大量的log日志不可能直接靠在控制台里打印的来定位问题,况且你又不是一直开着你的Shell,万一关了就无了。所以成功地调试程序、监控和错误报告地关键就是日志。2、代码部分引入依赖<depe.

2021-09-14 09:25:56 58

原创 JS处理数组的妙招

前言:面对业务开发的时候,经常需要对数组进行数据处理,下面就是处理数组元素常用的方法。数组置空正常人数组置空,这不是很简单么//数组置空let arr = ['1', '2', '3']arr = []其实,这样只是将arr数据引用到空数组[]中,其他引用arr数据的变量不会收到影响,那就是arr数组先前的内容仍保存在内存中,因为数组的是个对象,对象是保存在堆内存中,当数据量较大的时候,可能会造成内存泄露。//数组置空let arr = ['1', '2', '3']let bArr =

2021-09-14 09:23:35 181

原创 vue3.0+vuex+ts实现数据模块化及类型化

前言最近在将之前的后台框架从js改造为ts,其中涉及了很多vue周边生态的类型引入,这里记录一下vuex实现模块化以及Typescript支持框架版本vue3.x+vite2.x+vuex4.xvuex4.x版本ts引入写法官方文档文件结构在store文件夹中放入modules文件夹和index.ts入口文件,modules用于放置单独的模块代码实现入口文件入口文件除了按照官方的实现方式外,需要将每一个模块的State接口引入,引入后放置在RootState接口下。原理上就是将modul.

2021-09-13 09:46:14 2852 4

原创 数据结构解析【红黑树】

前言​ R-B Tree,全称是Red-Black Tree,又称“红黑树”,它一种平衡二叉树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。特性每个结点不是红色就是黑色不可能有连在一起的红色结点根结点都是黑色root每个红色结点的两个子节点都是黑色。叶子节点都是黑色:出度为0满足了性质就可以近似的平衡了,不一定要红黑数,可以为其他。实际例子​ Java在JDK1.8中引入了红黑树,实际的原因是因为当HashMap中hash函数插入计算到了重复位置.

2021-09-07 09:56:29 53

原创 tp5.1实现扁平转树状无限分类的复制功能

分析结构先看数据库 ( 第二个字段是用于联表操作 可以忽略 )扁平转树状// 无限分类算法function listTree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0){ if (!is_array($list)) { return []; } //创建基于主键的数组引用 $aRefer = []; $tree = []; foreach ($

2021-09-07 09:51:07 117

公司商号屏蔽算法(JS)

该算法可以用于屏蔽公司商号,例如广州某某某科技公司将会转换为广州***科技公司,使用js编写,使用时直接引入,调用方法时传入公司名,在返回值获取屏蔽商号后的公司名

2021-02-23

空空如也

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

TA关注的人

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