自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

原创 状态派生与保存——useMemo() 和 useCallback()

参数解释:function为一个函数,array为一个数组,value为返回值,执行function过后的返回值,如果array的依赖项发生改变,返回一个重新执行完的function的值,否则取的就是上一次的缓存值。1. 缓存值,避免重复执行上下文... . //许多逻辑计算 return number;} , [ props . number ]) //只有props.number改变的时候才会重新计算number的值2. 减少不必要的dom循环。

2022-07-20 15:44:53 675

原创 win10的任务栏打不开

该文件没有与之关联的应用来执行该操作。置"页面中创建关联。win+r打开运行,输入下面代码回车。

2023-11-12 12:41:24 81

原创 WARNING: Running pip as the ‘root‘ user can result in broken permissions

一、问题描述今天使用pip安装库的时候和一些模块的时候,出现了一下报错信息:大概意思就是:提示以“root”用户身份运行 pip 可能会导致权限损坏和冲突,因此我们需要创造一个虚拟的环境区执行它。

2023-08-16 17:28:12 958

原创 YOLOV7调试的bug

在每一行的上面那个代码后面添加一句代码,把向量放在一个地方,好像是这个意思吧哈哈哈,添加的代码是下面一行,每一个都要添加,代码里面有好几处这个代码。

2023-03-10 19:09:29 523

原创 YOLOv7训练自己的数据集

在cfg/training文件夹下选择合适的模型配置文件,作者提供了yolov7、yolov7-d6、yolov7-e6、yolov7-e6e、yolov7-tiny-silu、yolov7-w6、yolov7x等多个版本。以yolov7-d6.yaml为例,只需修改一个参数,将nc修改成自己的类别数即可。

2023-03-05 22:23:10 2259

原创 ESM 和 CommonJS 的区别

理解ESM和CommonJS

2023-02-23 11:34:04 203

原创 webpack和vite的热更新原理

理解webpack和vite的热更新原理:区别:vite是直接启动开发服务器,请求哪个模块再对该模块进行实时编译。而webpack会先打包,然后启动开发服务器,请求服务器时直接给予打包结果。由于现代浏览器本身就支持ES Module,会自动向依赖的Module发出请求。vite充分利用这一点,将开发环境下的模块文件,就作为浏览器要执行的文件,而不是像webpack那样进行打包合并。由于vite在启动的时候不需要打包,也就意味着不需要分析模块的依赖、不需要编译,因此启动速度非常快。

2023-02-22 15:22:58 522

原创 VUE面试

父子组件间通信子组件通过 props 属性来接受父组件的数据,然后父组件在子组件上注册监听事件,子组件通过 emit 触发事件来向父组件发送数据。通过 ref 属性给子组件设置一个名字。父组件通过 $refs 组件名来获得子组件,子组件通过 $parent 获得父组件,这样也可以实现通信。使用 provide/inject,在父组件中通过 provide提供变量,在子组件中通过 inject 来将变量注入到组件中。不论子组件有多深,只要调用了 inject 那么就可以注入 provide中的数据。

2023-02-12 21:55:41 70

原创 hasOwnProperty笔记

hasOwnProperty表示是否有自己的属性。这个方法会查找一个对象是否有某个属性,但是不会去查找它的原型链。遍历可以直接通过 forIn 循环执行,而判断是否为对象自身属性,则需要借助 hasOwnProperty 方法。一般在枚举的时候常用。书中的枚举指的主要是: 遍历一个对象并且获取该对象自身的所有属性。

2023-02-10 16:16:38 70

原创 HTML面试题总结

因为在display属性为none的元素上进行的DOM操作不会引发回流和重绘。避免频繁操作DOM,创建一个documentFragment,在它上面应用所有DOM操作,最后再把它添加到文档中。避免频繁操作样式,最好一次性重写style属性,或者将样式列表定义为class并一次性更改class属性。route是路由信息对象,包含和路由相关的一些信息,比如params,location等。避免频繁读取会引发回流/重绘的属性,如果确实需要多次使用,就用一个变量缓存起来。标签只是图形容器,必须使用脚本来绘制图形。

2023-02-07 16:20:02 82

原创 深拷贝与浅拷贝

JavaScript分为基本数据类型和复杂数据类型,对于基本类型的拷贝,并没有深浅拷贝的区别,讨论的深浅拷贝都只针对复杂数据类型。网络上的很多文章觉得引用类型赋值就是浅拷贝,误导了很多人,但 lodash 中的浅拷贝和深拷贝总不会错吧,这么多项目都在用。但是浅拷贝只进行一层复制,深层次的引用类型还是共享内存地址,原对象和拷贝对象还是会互相影响。浅拷贝和深拷贝都复制了值和地址,都是为了解决引用类型赋值后互相影响的问题。深拷贝就是无限层级拷贝,深拷贝后的原对象不会和拷贝对象互相影响。

2023-02-05 00:21:03 72

原创 和为S的连续正数序列

小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列?输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序。进阶:时间复杂度 O(n)

2023-02-02 00:29:53 49

原创 JZ73——翻转单词序列

reverse() 方法反转数组中元素的顺序。注:reverse() 方法将改变原始数组。

2023-02-01 23:53:04 55

原创 JavaScript数组去重的方法总结

new Set是ES6新推出的一种类型。他和数组的区别在于,Set类型中的数据不可以有重复的值。当然,数组的一些方法Set也无法调用。使用方法:将数组转化为Set数据类型,再转化回来,就完成了去重。

2023-02-01 23:31:41 96

原创 JS为什么是单线程

我们都知道,CPU是计算机的核心,承担所有的计算任务官网说法,进程是CPU资源分配的最小单位字面意思就是进行中的程序,可以将它理解为一个可以独立运行且拥有自己的资源空间的任务程序进程包括运行中的程序和程序所使用到的内存和系统资源。

2023-02-01 15:49:26 202

转载 性能优化之后端返回10万条数据,前端如何进行优化

之后,我们可以使用 setTimeout 顺序渲染页面,一次只渲染一个页面。实际上,我们可以先创建一个文档片段,在创建了 div 元素之后,再将元素插入到文档片段中。这样做还可以提高页面性能。在渲染页面的时候,我们可以使用requestAnimationFrame来代替setTimeout,这样可以减少reflow次数,提高性能。所以我们可以采用延迟加载的策略,根据用户的滚动位置动态渲染数据。好的,这就是我们的前端页面模板代码,我们开始渲染数据。分页后,数据可以快速渲染到屏幕上,减少页面的空白时间。

2023-01-30 17:26:26 355

原创 var let const

var声明的变量挂在在全局window上面,let和const声明的变量不在window上。let 语句声明一个块级作用域的局部变量,并可以初始化为一个值(可选)。let 允许你声明一个作用域被限制在块作用域中的变量、语句或者表达式。与 var 关键字不同的是,var 声明的变量作用域是全局或者整个函数块的。var 和 let 的另一个重要区别,let 声明的变量不会在作用域中被提升,它是在编译时才初始化(参考下面的暂时性死区)。

2023-01-30 17:17:38 105

原创 去除数组中重复的数字

Set是ES6新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,一般称为集合。Set本身是一个构造函数,用来生成 Set 数据结构。/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可* @param numbers int整型一维数组* @return int整型i ++) {} else {

2023-01-29 23:05:44 76

原创 学习vite

搭建vite项目,使用vue作为模板安装依赖,两种方式,在这里我们使用yarn:运行项目:项目运行效果:文件夹目录:你可能已经注意到,在一个 Vite 项目中,index.html 在项目最外层而不是在 public 文件夹内。这是有意而为之的:在开发期间 Vite 是一个服务器,而 index.html 是该 Vite 项目的入口文件。Vite 将 index.html 视为源码和模块图的一部分。Vite 解析 与静态 HTTP 服务器类似,Vite 也有 “根目录” 的概念,即服务文件的位置

2023-01-26 19:27:59 217

原创 vuepress创建博客并部署到gitee

创建一个文件夹,用vscode终端打开,初始化项目博客。使用npm或者yarn安装依赖,尽量不要全局安装。创建docs文件夹并写第一篇文章。使用命令在本地运行项目起来。

2023-01-14 21:14:11 201

原创 nvm基本使用

nvm安装指定的node版本。nvm查看可安装的版本。查看安装的node版本。查看当前node版本。

2023-01-14 14:59:56 139

原创 vuepress创建博客并部署到github

安装前的准备:nodegit。

2023-01-11 15:50:23 96

原创 git提交或克隆失败

因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理。1.在项目文件夹的命令行窗口执行下面代码,然后再git commit 或git clone。取消git本身的https代理,使用自己本机的代理,如果没有的话,其实默认还是用git的。这样就能提高服务器连接速度,能从根本解决 time out 443问题。原因还有一个,当前代理网速过慢,所以偶尔会成功,偶尔失败。

2023-01-10 20:00:44 779

原创 git修改用户名和邮箱账号

git修改用户名和邮箱账号

2023-01-10 15:31:11 108

原创 前端面试总结(一)

Objects和Maps类似的是,它们都允许你按键存取一个值、删除键、检测一个键是否绑定了值。因此(并且也没有其他内建的替代方式了)过去我们一直都把对象当成Maps使用。MapObject确实对于Object来说,我们在 95%的情况下都会选择,它不仅写起来最简单,而且相较于下面的函数调用,在性能方面会更为高效。对于构建函数,可能唯一使用到的情况就是显式的封装一个基本类型;而可以为对象设定原型。和Object不同,Map没有那么多花里胡哨的创建方法,通常只会使用其来创建。使用MapSymbolMap。

2023-01-01 22:44:36 59

原创 CSS布局之水平垂直布局

css 如何实现左侧固定 300px,右侧自适应的布局?两种方法第一种 使用 flex 布局,左侧 300px,右侧 flex-grow: 1。pug 代码及 css 代码示例如下第二种使用Grid布局,控制容器的CSS属性就行。

2022-06-24 19:37:23 263

原创 AJAX 工作原理

AJAX全称:Asynchronous JavaScript and XML,**异步的JavaScript和XML,**是一种创建交互式网页应用的网页开发技术,使用技术:AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。Ajax 的工作原理相当于在用户和服务器之间加了—个中间层(AJAX 引擎),使用户操作与服务器响应异步化。并不是所有的用户请求都提交给服务器,像—些数据验证和数据处理等都交给 Ajax 引擎自己来做, 只有确定需要从服务器读取新数据时再由 Aj

2022-06-23 21:42:50 222

原创 响应式和生命周期

Vue响应式指的是:组件的data发生变化,立刻触发试图的更新原理: Vue 采用数据劫持结合发布者-订阅者模式的方式来实现数据的响应式,通过Object.defineProperty来劫持数据的setter,getter,在数据变动时发布消息给订阅者,订阅者收到消息后进行相应的处理。 通过原生js提供的监听数据的API,当数据发生变化的时候,在回调函数中修改dom 核心API:Object.defineProperty Object.defineProperty API的使用 作用: 用来定义对象属性

2022-06-22 22:35:16 132

原创 Diff算法

由于在浏览器中操作DOM的代价是非常大的,所以在Vue引入了虚拟DOM,虚拟DOM是对真实DOM的一种抽象描述。将虚拟DOM渲染成真实DOM并挂载到页面中,将虚拟DOM渲染成真实DOM的逻辑也比较简单。主要步骤就是:创建节点→设置节点属性→添加子节点DOM-diff比较两个虚拟DOM的区别,也就是在比较两个对象的区别。作用: DOM-diff 算法主要功能是收集新老两个节点之间的变化,然后根据节点的变化来更新DOM。主要工作就是收集每个节点是否产生了变化,主要做了一下工作来得到两个节点的不同, 最终得到

2022-06-22 22:26:42 133

原创 JS运行机制

一个任务完成之后,才能执行另外一个任务。JavaScript 中有同步/异步任务的概念,同步任务在主线程上执行,会形成一个 执行栈,主线程之外,事件触发线程管理着一个 任务队列,只要异步任务有了运行结果,就在 任务队列 之中放一个事件回调。一旦 执行栈 中的所有同步任务执行完毕,就会读取 任务队列,将可运行的异步任务(任务队列中的事件回调,只要任务队列中有事件回调,就说明可以执行)添加到执行栈中,开始执行。同步/异步任务是广义上的,同时,JavaScript 中还有宏任务(macrotask)和微任务(m

2022-06-22 17:14:31 117

原创 vue组件通信的方式

本文总结介绍vue组件通信的方法。父组件通过向子组件传递数据,子组件通过和父组件通信。子组件向父组件传值绑定一个自定义事件,当这个事件被执行的时就会将参数传递给父组件,而父组件通过监听并接收参数。二、 eventBus事件总线()事件总线适用于父子组件、非父子组件等之间的通信,使用步骤如下: (1)创建事件中心管理组件之间的通信。发送事件 假设有两个兄弟组件和:在组件中发送事件:接收事件 在组件中发送事件:在上述代码中,这就相当于将值存贮在了事件总线中,在其他组件中可以直接访问。事件总

2022-06-21 22:11:37 72

转载 ES6-总结ES6对象的新增方法

本文总结介绍对象的新增方法。ES5 比较两个值是否相等,只有两个运算符:相等运算符()和严格相等运算符()。它们都有缺点,前者会自动转换数据类型,后者的不等于自身,以及等于。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。ES6 提出“Same-value equality”(同值相等)算法,用来解决这个问题。就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。不同之处只有两个:一是不等于,二是等于自身。ES5 通过下面

2022-06-21 22:10:08 300

原创 ES6-箭头函数

箭头函数是ES6中的提出来的,它没有,也没有自己的指向,更不可以使用参数,所以不能New一个箭头函数。new操作符的实现步骤如下:所以,上面的第二、三步,箭头函数都是没有办法执行的。(1)(2)箭头函数不会创建自己的this, 所以它没有自己的this,它只会在自己作用域的上一层继承this。所以箭头函数中this的指向在它在定义时已经确定了,之后不会改变。(3)对象obj的方法b是使用箭头函数定义的,这个函数中的this就永远指向它定义时所处的全局执行环境中的this,即便这个函数是作为对象obj的

2022-06-13 11:33:42 113

原创 ES6-基础复习

let const var块级作用域: 块级作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题:内层变量可能覆盖外层变量3. 用来计数的循环变量泄露为全局变量变量提升: var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在会报错。 (3)给全局添加属性:浏览器的全局对象是window,Node的全局对象是global。var声明的变量为全局变量,并且会将该变量添加为全局对象的属性,但是let和con

2022-05-27 13:57:27 80

原创 前端-计算机网络复习

HTTP 和 HTTPSHTTP 的基本概念http: 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的超文本传输协议。HTTP工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。客户端向服务器发送一个请求报文,服务器以一个状态行作为响应。HTTP请求/响应的步骤:● 1.客户端连接到Web服务器● 2.发送HTTP请求● 3.服务器接受请求并返回H

2022-05-17 11:53:52 201

原创 尚硅谷前端框架——Vue学习笔记

第 1 章:Vue 核心1.1. Vue 简介1.1.1. 官网英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/1.1.2. 介绍与描述动态构建用户界面的渐进式 JavaScript 框架作者: 尤雨溪1.1.3. Vue 的特点遵循 MVVM 模式编码简洁,体积小,运行效率高,适合移动/PC 端开发3。它本身只关注 UI,也可以引入其它第三方库开发项目。1.1.4. 与其它 JS 框架的关联借鉴 Angular 的模板和数据绑定

2022-03-30 16:48:44 1200

原创 试题 算法训练 印章

资源限制时间限制:1.0s 内存限制:256.0MB问题描述  共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。输入格式  一行两个正整数n和m输出格式  一个实数P表示答案,保留4位小数。样例输入2 3样例输出0.7500数据规模和约定  1≤n,m≤20n, m = map(int, input().split())def quick_multi(n, m): # 快速幂,n的m次方,其实直接调用python的求幂的函数

2022-03-29 21:47:14 123

原创 试题 基础练习 十六进制转八进制

资源限制时间限制:1.0s 内存限制:512.0MB问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n (1<=n<=10)。  接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应的八进制正整数。【注意】  输入的十六进制数不会有前导0,比如012A。  输出的八进制数也不能有前导0。样例输入  2  39  

2022-03-29 21:42:24 283

原创 试题 基础练习 数列排序

资源限制时间限制:1.0s 内存限制:512.0MB问题描述  给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式  第一行为一个整数n。  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式  输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9n = int(input())ls = input()dot = list(ls.split())for i

2022-03-29 21:35:02 253

原创 软测比赛---

案例1——汽车之家在eclipse里使用对应的考试(或练习)秘钥登录并下载题目之后,打开项目的Main.java文件,接下来将在test函数里编写测试脚本。package com.mooctest;import io.appium.java_client.AppiumDriver;import io.appium.java_client.AndroidKeyCode;import java.io.File;import java.net.MalformedURLException;import

2021-10-19 10:59:57 120

【2021】六级高频单词表.pdf

【2021】六级高频单词表.pdf

2021-12-13

复杂姿态下的安全帽佩戴检测方法研究_王雨生.pdf

复杂姿态下的安全帽佩戴检测方法研究_王雨生.pdf

2021-05-14

YOLOv3在安全帽佩戴检测中的应用研究_马小陆.pdf

YOLOv3在安全帽佩戴检测中的应用研究_马小陆.pdf

2021-05-14

空空如也

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

TA关注的人

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