自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KEEP RUNNING的博客

简单不粗暴

  • 博客(81)
  • 收藏
  • 关注

原创 React Hooks useRef 源码解读+最佳实践

react useRef 源码解析,深入浅出完整分析,带流程图,带使用示例,最佳实践

2023-05-25 21:56:35 3587 2

原创 数据存储(三)WebStorage 之 IndexedDB

Indexed Database API,简称为 IndexedDB,是在浏览器中保存结构化数据的一种数据库,支持保存、读取、查询、搜索等。

2022-12-03 15:39:17 2165

原创 数据存储(二)WebStorage 之 sessionStorage、globalStorage、localStorage

sessionStorage在多窗口之间是否能共享状态?sessionStorage数据存储在哪里?sessionStorage和localStorage区别?

2022-11-24 19:10:41 1974

原创 数据存储(一)Cookie

用来在客户端存储会话信息,以及和服务端进行通信。

2022-11-23 12:52:13 1887

原创 React Hooks useReducer 使用详解+实现原理+源码分析

useReducer => useState 的高级方案官网说 useReducer 是 useState 的替代方案,我觉得说是 useState 的高级方案更合适因为 useReducer 本质的作用也是更新 state,另外它还支持自定义集成多种更新同一个 state 的规则

2022-11-08 12:02:48 605

原创 React Hooks useState 使用详解+实现原理+源码分析

useState => 让函数组件具有维持状态的能力。useState 这个 Hook 是用来管理 state 的,它可以让函数组件具有维持状态的能力。即在一个函数组件的多次渲染之间,这个 state 是共享的。

2022-11-08 11:54:37 2299

原创 React 五大特性__看这一篇就够了

本篇文章讲了React五大特性,介绍概念,分析原理,举例说明,附加详细流程图

2022-03-18 13:25:35 5301 1

原创 Charles 抓包配置__抓包加密HTTPS__抓手机请求

如何配置Charles,如何去掉HTTPS锁,如何抓手机数据

2022-01-27 19:34:54 2955

原创 MacOS 安装 Flutter 开发环境__排坑版

解决问题:path/to/sdkmanager --install "cmdline-tools;latest"flutter doctor --android-licensesAndroid sdkmanager not found.VSCode zsh: command not found: flutter

2021-08-30 21:47:32 369 2

原创 curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443

安装nvm报443错误?这里爬到解决办法 ↓问题原因:github 上一些域名的 DNS 解析被污染,导致DNS 解析过程中,无法通过域名获得正确的IP地址。解决办法:修改DNS地址,使用gitee镜像

2021-08-06 14:40:24 5668 2

原创 常用数据结构(五)树

二叉树的简介,深度遍历(先序、中序、后序)、广度遍历

2021-05-26 15:20:47 239 1

原创 常用数据结构(四)链表

链表简介,基础的链表的实现,包括链表的查找、新增和删除功能,双向链表,双向循环链表,跳跃表

2021-05-26 15:11:25 294 1

原创 常用数据结构(三)队列

队列是操作受限的线性结构。可以在头部和尾部进行操作,但尾部只能插入,头部只能删除。 这种受限的操作方式让队列元素的插入和删除遵循一种特殊的原则——先进先出原则(First In First Out,FIFO)。JavaScript 在处理异步操作时经常会用到队列,例如:宏任务队列、微任务队列; 回调函数队列。队列的实现也可以通过数组来实现,下面的代码实现了一个队列结构:function Queue(){ var _queue = []; // 尾部入队列 this.enq

2021-05-26 15:06:28 194 1

原创 常用数据结构(二)栈

栈是一种操作受限的线性结构,限定只能在尾部进行插入和删除操作。尾部被称为栈顶,而头部称为栈底。 向一个栈插入新元素又称作进栈、入栈或压栈。 从一个栈删除元素又称作出栈或退栈。 这种受限的操作方式让栈元素的入栈出栈遵循一种特殊的原则——先进后出(First In Last Out,FILO)。栈的应用非常广泛,例如:浏览器的历史记录,它的前进、后退功能就是一个栈操作; V8 中的函数执行过程采用的栈结构; JavaScript 在捕获代码异常时,详细信息会以调用栈的形式打印。栈可以通过数

2021-05-26 15:02:18 131

原创 常用数据结构(一)数组

数据结构概念计算机中组织和存储数据的特定方式,是对基本数据类型的一种高级抽象。是描述数据之间的关系和操作数据的方法。常用的数据结构:数组 、栈、队列、链表、树数组这里指一维数组(数组可以生成更复杂的多维数组、栈、队列…)V8源码如下:// The JSArray describes JavaScript Arrays//Such an array can be in one of two modes://- fast, backing storag...

2021-05-26 11:56:08 351

原创 macOs Big Sur “ 无法打开×××,因为无法验证开发者。“

今天升级了 macOs Big Sur 系统,然后就启动不了 flutter 项目了,弹出提示框" 无法打开dart,因为无法验证开发者。"因为 macOs Big Sur 系统在安全方面做了增强,所以我们需要 ????????????????????????方法一:找到无法打开的程序,右键打开,此时会出现一个提示框,选择 “ 打开 ” 即可。若还是没办法打开,则打开使用方法二。方法二:打开 系统偏好设置→安全性与隐私→通用→解锁→允许从以下位置下载App→更改为任何来源若

2021-04-16 11:28:56 14977 5

原创 Flutter 升级到指定版本——版本升级与回退

版本升级 升级到最新版本:flutter upgrade 升级到指定版本:flutter upgrade [版本号] 例如:flutter upgrade v2.0.3版本回退1. 进入flutter github找到要回退的版本2. 进入flutter项目目录,运行回退指令 git reset --hard [commit_id]例如:git reset --hard4d7946a68d26794349189cf21b3f68cc6fe61...

2021-04-14 11:12:45 5193

原创 h5跳微信小程序流程实现——使用云函数,不开通静态网站

官方开源库:GitHub TCloudBase/WXSEVER-SMS参考教程:https://developers.weixin.qq.com/community/develop/doc/000ae2a7a7c9402a4d8bca2875b409此教程为官方提供,包含视频+文档步骤:1. 开通云开发2. 新建云函数 openMini3. 重新打开“微信开发者工具”,即会在项目工程中自动生成云函数目录关于此云函数目录:文件夹上会有 云 logo 文件.

2021-03-22 16:49:28 2141 4

原创 border-radius 构建规则讲解 及 50% 和 100% 的异同

参考:MDNborder-radius1. 用途:为边框设置圆角,若无边框,则会作用到背景上。2. 设置原则:若为一个值,则用其为半径构建圆形,这个圆与边框的交集形成圆角效果。 若为两个值,则用两个值分别为半长轴、半短轴构建椭圆,这个圆与边框的交集形成圆角效果。3. radius的值是百分比,就相当于盒子的宽度和高度的百分比。例1 盒子宽高都为100px。border-top-left-radius:50% 就相当于用50px作为半径构建圆形,此圆形与上左边框的交集,形成圆..

2021-03-09 17:37:23 6091 2

原创 Javascript falsy truthy false true 之间的关系

1.什么是 falsy ?MDN上这样说:Afalsy(sometimes writtenfalsey) value is a value that is considered false when encountered in aBooleancontext.—— falsy(虚值) 是在 Boolean上下文中认定为false 的值。JavaScript在需要用到布尔类型值的上下文中使用强制类型转换将值转换为布尔值,例如条件语句和循环语句。在 JavaScr...

2021-03-04 15:28:46 382 2

原创 类原型重定向、函数重定向——画图讲解+试题分析

1原型重定向概念概念:改变内置原型指向使用场景:批量给内置原型上增加属性和方法存在的问题:重新定向的对象中没有constructor 原始的原型对象上,存放的属性方法,不会放到重新定向的对象上,导致实例不能再用原始的那些方法了 原始的原型对象不被占用后,会被内存释放掉 内置类的原型都不允许重定向2重定向陪写及问题解决2.1 基础写法function Func() {}// 向原型上扩展 A B C D 四方法Func.prototype.A = functi...

2021-03-01 18:47:57 350

原创 git 提交,文件名大小写的修改提交不上去?解决办法在这里

git 默认对文件名的管理是 → 不区分大小写可执行以下命令更改 git 设置,使其区分文件名的大小写git config core.ignorecase false然后正常提交代码,远程仓库显示 【 大写文件和小写文件同时存在 】(本地一切正常)此时需要手动删除远程仓库名字错误的文件。这里提供删除文件和文件夹的命令// 进入到待删除的目录// 删除文件命令git rm -r --cached text /a.txt // 删除test文件夹下的a.txt文件,加入到删

2021-01-19 11:16:58 10071 2

原创 Flutter 图片和多行文本中的第一行对齐,文字行高、行距、偏移设置

众所周知,图片和文本对齐有很多种实现方式,并且基于中轴线对的很齐其中一个例子,如下:利用 Row 的crossAxisAlignment 属性Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ Container( padding: EdgeInsets.only( left: ScreenTool.dp(14), right: ScreenTool.dp(.

2020-12-29 19:48:13 4199 4

原创 Flutter TextField设置高度后内容区无法居中?最全篇

方法一:设置 contentPaddingdecoration: InputDecoration( contentPadding: EdgeInsets.all(0),),//或者decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(vertical: 0),),方法二:设置对其方式textBaselineTextField( style: TextStyle(tex.

2020-12-29 14:31:34 1214

原创 正则表达式(二)常用正则表达式——获取出现次数最多的字母

方法一: 去重let str = "adddddddddddddddsaaaaaaaaaaaaaaasbdfgyhiujdnbfhyigehjnfbsh";let obj = {};[].forEach.call(str, char => { if (typeof obj[char] !== "undefined") { obj[char]++; return; } obj[char] = 1;});let max = 1, res = [];for (let key

2020-12-28 13:54:27 1055

原创 vscode关闭保存时自动格式化代码,针对所有,尤其 flutter dart,更改默认设置

保存时自动格式化代码是福也是祸,vscode安装flutter插件自带保存时格式化代码功能,当多人共同开发时就会不小心格式化了别人代码,这里记录了如何关闭自动格式化。

2020-12-15 16:13:19 4950 5

原创 正则表达式(三)正则的捕获

正则捕获的多种方法详解,正则捕获的懒惰性和贪婪性,以及 ( ) 的分组、捕获、引用三种用法。每个知识点都伴随案例。

2020-12-11 19:07:24 2805 1

原创 正则表达式(二)常用正则表达式——验证身份证号码

规则分析1. 一共18位2. 最后一位可能是X身份证前六位:省市县 130828 中间八位:年月日 最后四位: 最后一位 => X或者数字 倒数第二位 => 偶数 女 奇数 男 其余的是经过算法算出来的 正则表达式// 方法一let reg1 = /^\d{17}(\d|X)$/;// 方法二,分组捕获// 小括号分组的第二个作用:分组捕获,不仅可以把大正则匹配的信息捕获到,还可以单独捕获到每个小分组的内容let reg2 = /^(\d{..

2020-12-11 11:31:48 2010

原创 正则表达式(二)常用正则表达式——验证邮箱

规则分析1.开头是数字字母下划线(1到多位)2.还可以是 -数字字母下划线 或者 .数字字母下划线,整体零到多次总结=> 邮箱的名字由“数字、字母、下划线、-、.”几部分组成,但是-/.不能连续出现也不能作为开始 即=> \w+((-\w+)|(\.\w+))*3. @后面紧跟着:数字、字母 (1-多位) 即=> @[A-Za-z0-9]+4. 对@后面名字的补充 多域名 例如: .com.cn 企业邮箱...

2020-12-11 11:22:50 5916

原创 正则表达式(二)常用正则表达式——验证真实姓名

规则分析1.汉字 即=>/^[\u4E00-\u9FA5]$/2.名字长度 2~10位(根据使用场景改变) 即=> {2,10}3.可能有译名 ·汉字 即=> (·[\u4E00-\u9FA5]{2,10}){0,2}正则表达式let reg = /^[\u4E00-\u9FA5]{2,10}(·[\u4E00-\u9FA5]{2,10}){0,2}$/;...

2020-12-11 11:13:02 16440

原创 正则表达式(二)常用正则表达式——验证密码

规则分析1. 数字、字母、下划线 即=> \w2. 6~16位 即=> {6,16}正则表达式let val = userPassInp.value, reg = /^\w{6,16}$/;let flag=reg.test(val);JavaScript实现方法function checkPass(val){ if(val.length<6 || val.length>16){ ...

2020-12-11 11:05:49 677

原创 正则表达式(二)常用正则表达式——验证是否为数字

规则分析1. 可能出现 + - 号,也可能不出现 即=> [+-]?2. 若仅有一位,那么0-9都可以;若有多位,首位不能是0 即=> (\d|([1-9]\d+))3. 小数部分可能有可能没有,一旦有后面必须有小数点+数字 即=> (\.\d+)?正则表达式let reg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;console.log(reg.test("0")); //=&g...

2020-12-11 10:56:35 6198

原创 正则表达式(一)入门篇

正则表达式的简介概述、应用场景、编写规则以及常用的元字符修饰符等入门基础。

2020-12-09 19:11:31 185

原创 数字添加千位符_普通方法+正则方法

方法一标签:综合性能最高原理:1. 先把数字转换成字符串 2. 字符串长度>3则进入循环,分割字符串,每次循环都取后三个,并在前加逗号 3. 当长度<3时,跳出循环,走iffunction toThousands(num) { var num = (num || 0).toString(), result = ''; while (num.length > 3) { result = ',' +...

2020-11-14 13:47:44 1760

原创 生成目录树的工具——tree——安装及详解

tree 安装$ brew install tree // mac安装命令tree 使用$ tree -help// 查看帮助完整的生成目录树的流程$ tree -I "ios|build|android|._*" // 忽略ios文件目录的生成-a 显示所有文件和目录。-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。-C 在文件和目录清单加上色彩,便于区分各种类型。-d 显示目录名称而非内容。-D ...

2020-10-28 10:25:26 1417

原创 面试题:this指向解析,真题模拟——五年模拟三年高考

var num = 10;var obj = { num = 20}obj.fn = (function(num) { this.num = num * 3 num++ return function(n) { this.num += n num++ console.log(num); }})(obj.num)var fn = obj.fn;obj.fn(10);console.log(num, obj.num)

2020-10-24 22:11:15 888

原创 面试题:css 实现一个三角形——必会篇,你值得拥有

要点:div的宽高都设置为0,border设置很大,然后调整每条边的颜色即可 !!!<style> #box{ width: 0px; height: 0px; border: 100px solid; border-top-color: transparent; border-bottom-color: teal; border-left-color: transparent;

2020-10-24 22:05:58 981

原创 面试题:设计一个等待函数,等待N时间后执行要做的事情——多种方案解析

面试题:设计一个等待函数,等待N时间后执行要做的事情思路:1. 定时器回调 2. 定时器 + async/await 3. reduce() 4. Promise实际情景:1秒后输出1,再等待2秒输出2,再等待3秒输出3。1. 定时器回调这种方式绝对是最容易想到,但是面试官最不想听的答案。setTimeout(() => { console.log(1); setTimeout(() =&...

2020-10-23 17:50:25 1289

原创 Git 打tag 创建tag+查看tag+删除tag_超清晰步骤+解读

通过Git命令打tag git tag   // 查看tag git log // 查看提交记录,找到想要打tag的commit版本号,并复制 git tag one_tag 【想要打tag的commit版本号】 // 在commit 上打tag git tag // 查看tag是否打成功 git push origin one_tag     // 将本地tag推送到线上 ...

2020-10-23 16:59:37 1859

原创 Mac 如何编辑.bash_profile

1. 打开终端 TERMINAL2. 默认直接进入到用户目录(如下图),若没有出现 ~ ,敲入 cd ~ 命令进入即可。3.打开.bash_profile文件命令 open -e .bash_profile4. 输入环境配置5.更新刚配置的环境变量命令source .bash_profile...

2020-10-23 11:26:39 1385

空空如也

空空如也

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

TA关注的人

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