自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

庸人方自扰,自在就好

一个前端开发工程师的人生经验

  • 博客(148)
  • 资源 (8)
  • 收藏
  • 关注

原创 React使用Outlet实现路由跳转时局部刷新页面

应该在父路由元素中用来渲染其子路由元素。这允许在渲染子路由时显示嵌套的 UI。如果父路由完全匹配,则将渲染子索引路由;如果没有索引路由,则不渲染任何内容。第82行插入Outlet组件。

2024-05-10 07:03:40 387

原创 uniapp报错:[获取文件失败] 以下文件已被配置忽略打包上传,模拟器无法获取...

uniapp分包控制台报错:Error: module ‘pagesMember/address/address.js’ is not defined, require args is ‘pagesMember/address/address.js’以及[获取文件失败] 以下文件已被配置忽略打包上传,模拟器无法获取:pagesMember/address/address.js如下图:1、在微信开发者工具里面project.config.json 的 setting中添加以下代码:2、(该步骤

2024-03-15 00:18:34 1211

原创 Windows系统任务栏应用图标显示成空白的解决方案

在任务栏上右击鼠标,在弹出的菜单中点击“任务管理器”,或者Ctrt+Alt+del三键组合键选择“任务管理器”,在任务管理器中找到“Windows资源管理器”,右击鼠标,选择“重新启动”即可重建图标缓存。Windows系统为了加快系统响应速度,在安装完应用第一次显示完应用图标后,会将应用的图标放入缓存中,以后每次显示应用直接在缓存中获取,如果缓存中的图标信息发生错误,显示成白色方块。按下快捷键 Win+R,在打开的运行窗口中输入 %localappdata%,回车打开存放缓存文件的文件夹。

2024-01-08 01:54:35 1373

原创 宝塔面板安装mysql出现最低内存和最低CPU限制的解决方案

当我们服务器配置不高时,在宝塔面板中安装mysql可能会出现:“至少需要2个CPU核心才能安装”或者“至少需要XXX内存才能安装”。这是宝塔面板为了保证服务器的运行,宝塔面板对于低内存和低CPU的服务器,安装mysql时有最低内存和CPU核数限制。这对于很多想要体验高版本mysql站长,或者程序需要更高版本的mysql时,是一件麻烦的事。要么只能够升级服务器配置,要么只能被迫安装低版本mysql。其实有一个解决方法,你就是关闭宝塔面板最低内存和最低CPU的限制,强制安装。宝塔面板最低内存和最低CPU限制。

2024-01-03 04:35:16 1869 4

原创 Win10找不到hosts文件的解决方案

正常情况下,Windows10系统的。

2023-10-13 18:25:34 3248

原创 Windows电脑应用设置开机自启动

比如我们程序员,开机就想电脑自启动谷歌浏览器和VS Code等开发工具,自己什么都不用动,怎么办?有人说可以在任务管理器的启动里设置,但还是有些工具里面没有的,也就是不能这样设置的,今天教大家一个超简单的方法,能设置所有的应用!

2023-07-25 15:35:20 1175

原创 如何安装和使用nvm(超简单)

nvm,全名,顾名思义它是Node的版本管理工具, 有了nvm管理工具,我们就可以使用nvm的一系列命令来管理和使用不同版本的Node。前端更新较快,而老项目依赖经常是基于node老版本,而新项目往往会与之冲突。新项目用18版本的node,老项目只能用14版本的node,你两个项目都要做,怎么随意切换node的版本?最佳答案就是nvm工具,因为和nvm一起统领神坛的另一个n工具并不支持Windows系统,nvm工具支持所有系统。

2023-07-25 14:39:29 3587

原创 git bash设置字体大小

git bash默认字体太小了,每次读信息都要伸头盯着屏幕,很不自在,不符合我的风格,so let’s do it!

2023-07-13 14:24:19 1639

原创 GitHub打不开的解决方案(超简单)

在国内,github官网经常面临打不开或访问极慢的问题,不挂VPN(梯子,飞机,魔法)使用体验极差,那有什么好办法解决github官网访问不了的问题?今天小布教你几招轻松访问github官网。

2023-06-30 15:53:17 86373 121

原创 Hooks为什么不能写在条件语句或循环语句里

在本文中,我们讨论了为什么 React 限制 Hooks 必须写在函数的顶部。主要原因是识别 Hooks 并正确管理它们对组件状态的更新非常重要,而将 Hooks 放置在条件语句或循环语句中可能会导致不可预测的结果。因此,遵守这个限制可以确保组件状态的正确性并使代码更易于理解和维护。

2023-06-10 06:04:15 1811 2

原创 浅谈useCallback函数

useCallback 是 React 提供的一个 Hook 函数,用于缓存需要在组件中多次调用的回调函数。它接受两个参数:回调函数和依赖数组。当依赖数组中的任何一个值发生变化时,useCallback 将会返回一个新的回调函数,否则将会返回之前缓存的回调函数。这样可以避免在每次渲染时都重新生成回调函数,从而提高组件的性能。useCallback 是 React 中一个非常有用的 Hook 函数,可以帮助我们缓存需要在组件中多次调用的回调函数。

2023-06-07 04:55:58 4838 3

原创 浅谈useMemo函数

useMemo 是 React 中的一个 Hook,它可以用来缓存计算结果,并在后续的渲染中重复利用这些计算结果。useMemo 接收两个参数:一个函数和一个依赖数组。当依赖数组中的任何一个值发生变化时,useMemo 会重新执行传入的函数,并返回新的计算结果。本文我们浅谈了 useMemo 函数,了解到它可以帮助我们缓存计算结果,提高了组件的渲染性能。要使用 useMemo,我们需要提供一个计算函数,并指定需要监视变化的依赖数组。

2023-06-05 05:54:05 5094 1

原创 git切换远程仓库地址

我的小米商城项目是上传在github的,现在要上传到码云,需要先用git切换远程仓库地址。

2023-06-05 05:42:38 3284

原创 浅谈React.memo函数

React.memo 是一个高阶组件,它可以用来包装一个函数组件(Functional Component)并返回一个新的组件。这个新组件会对传入的 props 进行浅比较(Shallow Comparison),如果发现传入的 props 没有发生变化,则直接返回上一次渲染的结果,从而避免不必要的重复渲染过程,提升了组件的渲染性能。否则重新渲染组件。React.memo 和 React.PureComponent 类似,都可以用于优化组件的性能。

2023-06-02 00:01:09 2178

原创 Vue和React的异同

当每一次UI更新时,总会根据render重新生成最新的VNode,然后跟以前缓存起来老的VNode进行比对,再使用Diff算法(框架核心)去真正更新真实DOM(虚拟DOM是JS对象结构,同样在JS引擎中,而真实DOM在浏览器渲染引擎中,所以操作虚拟DOM比操作真实DOM开销要小的多)。另外Vue插件都是基于Vue原型类基础之上建立的,这也是Vue插件使用Vue.install的原因,因为要确保第三方库的Vue和当前应用的Vue对象是同一个。Vue Diff使用双向链表,边对比,边更新DOM。

2023-05-11 03:33:18 1031 1

原创 盒马鲜生前端1年经验社招一面面经(2022.5.27)

React学过吗?项目是用Vue3做的吗?知乎专栏是自己做的吗?computed和watch的区别,分别有什么适用场景?Vue的生命周期父子组件生命周期执行顺序Vue插槽Vue的keep-aliveVue的$nextTickVuex哪些数据用Vuex存储Vue为什么不能用下标更新数组Vue改变数组的某一项怎么做Vue源码了解过吗?了解虚拟DOM吗?虚拟DOM的优缺点都是用axios吗?原生fetch用过吗?Ajax呢?axios平时会怎么用呢?Flex布局项目会封装一些什么

2023-05-05 19:02:53 876

原创 解决报错:pnpm : File C:\Users\XXX\AppData\Roaming\npm\pnpm.ps1 cannot be loaded because...

背景:Windows系统的VS Code上不能使用cnpm,pnpm,tnpm等,即使你全局安装了它们。

2023-05-05 01:27:46 1086

原创 设计模式之装饰器模式

装饰器模式:为对象添加新功能,不改变其原有的结构和功能装饰器模式是原有的功能还能用,但是需要新增一些东西来完善这个功能。比如产品经理让你添加新功能,但又要保证原来的代码不变,你要在原来的方法执行的时候同时出现新功能。比如手机壳,手机本身的功能不受影响,手机壳就是手机的装饰器模式。新需求是,你要在执行handle函数的时候,顺便再弹出一个2。

2023-05-05 01:14:39 749

原创 解决报错:@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

原因:一般发生在重装系统上,本地最早已经远程连接过服务器,生成了本地远程连接信息,当重装系统后,本地密钥信息还在,但远程已经重装了系统。应该是重新生成本地远程连接信息就好了。1、打开电脑存放ssh公私钥的目录:C:\Users\XXX.ssh,删掉known_hosts文件。3、重新运行git push即可成功推送。

2023-03-24 22:58:03 855

原创 VS Code下载太慢的解决方案

在浏览器的下载内容中,在新标签页地址栏中打开链接(或者复制链接地址,在新标签页地址栏中粘贴地址),把下面这一串字符。,然后回车即可神速下载VS Code。

2023-03-20 23:12:45 1220 2

原创 React项目支持Less

话不多说,直接分享。

2023-01-03 01:51:24 552

原创 Mac系统如何配置SSH

ssh的作用就是为了不用每次都输入账号和密码。

2022-08-25 01:42:20 3295

原创 如何安装React Developer Tools(超简单)

vue-devtools的安装有三种方法,第一种是通过谷歌应用商店进行安装,第二种是手动安装,第三种是直接下载使用网友分享出来的资源:打开谷歌的更多工具–扩展程序,打开左上角的“主菜单”,点击下面的“打开Chrome网上应用店”,这个应用商店是需要番强的,一般同学是打不开的!能打开的同学搜索React,把第一个扩展程序添加至Chrome即可。下载链接:https://download.csdn.net/download/weixin_43804496/86037025下载压缩包,然后解压,打开谷歌浏览器的扩

2022-07-12 01:08:53 1215 2

原创 如何创建一个React项目(超简单)

1、安装Node.js(官网Node.js下载)2、运行和两条命令(检验是否下载成功Node.js)3、(用npm安装cnpm,将镜像源设置为国内镜像源,国内镜像源由taobao提供,有些软件可能在国外,有的时候可能需要翻墙,你就会下载比较慢,这个时候使用cnpm就比npm快)4、(查看安装的cnpm版本号,用于检查cnpm安装是否成功)5、(安装React的脚手架)6、(创建一个React项目,项目名为my-project。环境是先切换到项目所在目录再执行,如Desktop和F盘)7、8、(这两步跟着它提

2022-07-04 16:11:31 7717

原创 Vue中keep-alive原理

keep-alive是用来缓存组件的,比如我们有个列表页,在点击详情页之后,如果返回之后不想刷新列表页,就可以用keep-alive组件进行缓存。除此以外,还有很多应用场景。用法1:我们想要缓存某个组件,只要用keep-alive组件将其包裹就行。用法2:包裹component组件缓存动态组件,或者包裹router-view缓存路由页面,也就是keep-alive配合路由守卫(元信息)实现缓存。比如常在router.js路由表里定义好哪些页面需要缓存,就可以通过下面这样实现了:属性include

2022-06-29 18:06:15 10849

原创 在浏览器输入url到页面展示出来

首先会对 URL 进行解析,分析所需要使用的传输协议和请求的资源的路径。如果输入的 URL 中的协议或者主机名不合法,将会把地址栏中输入的内容传递给搜索引擎。如果没有问题,浏览器会检查 URL 中是否出现了非法字符,如果存在非法字符,则对非法字符进行转义后再进行下一过程。浏览器会判断所请求的资源是否在缓存里,如果请求的资源在缓存里并且没有失效,那么就直接使用,否则向服务器发起新的请求。下一步首先需要获取的是输入的 URL 中的域名的 IP 地址。首先会判断本地是否有该域名的 IP 地址的缓存,如果有则使用,

2022-06-29 02:53:51 629

原创 JS中的this指向

this可以用在构造函数之中,表示实例对象。除此之外,this还可以用在别的场合。但不管是什么场合,this都有一个共同点:它总是返回一个对象。简单说,this就是属性或方法“当前”所在的对象。this.property中this就代表property属性当前所在的对象。上面代码中,this.name表示name属性所在的那个对象。由于this.name是在describe方法中调用,而describe方法所在的当前对象是person,因此this指向person,this.name就是person.n

2022-06-24 01:51:18 1796

原创 async await

背景在很长一段时间里面,前端工程师不得不依靠回调来处理异步代码。使用回调的结果是,代码变得很纠结,不便于理解与维护,值得庆幸的是Promise带来了.then(),让代码变得井然有序,便于管理。于是我们大量使用,代替了原来的回调方式。但是不存在一种方法可以让当前的执行流程阻塞直到promise完成。JS里面,我们无法直接原地等promise完成,唯一可以用于提前计划promise完成后的执行逻辑的方式就是通过then附加回调函数。 现在随着ES7中async await的增加,可以让接口按顺序异步获取数据

2022-05-25 10:39:44 316

原创 Promise

ECMAscript 6 原生提供了 Promise 对象。Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息。Promise 对象有以下两个特点:1、对象的状态不受外界影响。Promise 对象代表一个异步操作,有三种状态:pending: 初始状态,不是成功或失败状态。fulfilled: 意味着操作成功完成。rejected: 意味着操作失败。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。这也是 Promise 这个名字的由来,它的英

2022-05-23 18:18:01 835

原创 AJAX总结

简介AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是编程语言,而是一种使用现有标准的新方法。AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数

2022-05-19 17:46:36 337

原创 arguments、剩余参数和默认参数值

argumentsarguments 是一个对应于传递给函数的参数的类数组对象。小试牛刀function func1(a, b, c) { console.log(arguments) console.log(arguments[0]) // 1 console.log(arguments[1]) // 2 console.log(arguments[2]) // 3}func1(1, 2, 3)“类数组” 意味着 arguments 有 长度 属性 并且属性的索引是从零开

2022-05-16 16:17:57 716

原创 虚拟DOM原理

在Vue2渲染层做了根本性的改动,那就是引入了虚拟DOM。vue的虚拟dom是基于 snabbdom 改造过来的。了解 snabbdom的原理之后再回过头来看 vue的虚拟DOM结构的实现。就难度不大了!一、背景为什么需要 Virtual DOM在前端刀耕火种的时代,jquery 可谓是一家独大。然而慢慢地人们发现,在我们的代码中布满了一系列操作 DOM 的代码。这些代码难以维护,又容易出错,最重要的是,DOM操作非常耗费性能。而Vue和React是数据驱动视图,那么它们如何有效控制DOM操作呢?

2022-05-05 16:17:58 494

原创 JS的eval()方法

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句(代码)。eval是JS中最强大的方法之一,它就像一个完整的ECMAScript解析器,它会根据ECMAScript语句对字符串进行解析和计算。

2022-05-01 19:17:37 20254 3

原创 设计模式之观察者模式(发布订阅模式)

特点:这种模式一般会定义一个主体和众多的个体,这里主体可以想象为一个消息中心,里面有各种各样的消息,众多的个体可以订阅不同的消息,当未来消息中心发布某条消息的时候,订阅过它的个体就会得到通知。1、定义消息中心首先,我们定义一个消息中心,里面包含存储消息的_msg对象,返回一个对象,里面有3个方法属性分别用于订阅一个消息,发布消息和取消订阅的消息。// 消息中心const msgCenter = (function() { let _msg = {} // 存储消息 return {

2022-04-29 02:03:56 523

原创 Vue双向绑定原理

大家都知道,关于Vue的双向绑定,核心是Object.defineProperty()方法,那接下来我们就简单介绍一下!Object.defineProperty()语法:Object.defineProperty(obj,prop,descriptor)obj——要在其上定义属性的对象。prop——要定义或修改的属性的名称。descriptor——将被定义或修改的属性描述符。其实,简单点来说,就是通过此方法来定义一个值。调用,使用到了get方法,赋值,使用到了set方法。例子:let

2022-04-27 23:22:32 4992 1

原创 JS的get方法和set方法

get 关键字将对象属性与函数进行绑定,当属性被访问时,对应函数被执行。set 关键字将对象属性与函数进行绑定,当属性被赋值时,对应函数被执行。基本用法:let obj = { a: '吕小布', get b() { console.log('一旦调用对象的b属性,就会触发b属性的get方法') }, set b(newVal) { b = newVal console.log('调用了b属性的set方法,方法的值是:' + newVal) }}obj.

2022-04-27 18:18:37 10499

原创 HTTP缓存和浏览器缓存

HTTP缓存分为强缓存和协商缓存,浏览器缓存常见的有cookie、localStorage和sessionStorageHTTP缓存强缓存强缓存整体流程比较简单,就是在第一次访问服务器取到数据之后,在过期时间之内不会再去重复请求。实现这个流程的核心就是如何知道当前时间是否超过了过期时间。强缓存的过期时间通过第一次访问服务器时返回的响应头获取。在 http 1.0 和 http 1.1 版本中通过不同的响应头字段实现。在 http 1.1 版本中,强制缓存通过 Cache-Control 响应头来实

2022-04-26 15:24:54 738

原创 JS数组降维

方法一、flat方法代码:// 传说中的五维数组var arr = [1, [2, 3, [4, 5, [11, 12, 13], 6, [7, 8, [9, 10]]]]];console.log(arr.flat(2));//[1, 2, 3, 4, 5, [11, 12, 13], 6, [7, 8, [9, 10]]]三维console.log(arr.flat());//[1, 2, 3, [4, 5, [11, 12, 13], 6, [7, 8, [9, 10]]]]四维conso

2022-04-25 00:17:53 249

原创 “品”字布局

问题:怎么实现“品”字布局一、flex布局解决方案代码:<!doctype html><html><head> <meta charset="UTF-8"> <title>flex布局解决方案</title> <style> * { margin: 0; padding: 0; } div { text-align: center;

2022-04-25 00:10:19 599

原创 两列布局(3种解决方案)

问题:左边宽度固定,右边宽度随视窗的宽度变化而变化一、float浮动解决方案代码:<!DOCTYPE html><html><head> <title>两列布局1-float浮动</title> <style> .left { background-color: red; width: 400px; float: left; } .right { background-color: g

2022-04-24 23:49:31 723

React Developer Tools

React Developer Tools是开发的React必备的开发者工具扩展。可以在chrome开发者工具中得到一个名为React的新标签,检查React组件层次结构,在页面上显示React组件。此外,它还能大大提高React开发的效率!

2022-07-12

广州前端实习&amp;amp;amp;校招笔试题

博主实习和校招期间亲身经历的广州各公司的现场笔试题,资源珍贵!

2021-11-29

HTML&amp;amp;amp;CSS-王者荣耀

这是我人生中做的第一个网站,当时用了2周左右的时间学习HTML和CSS的入门并用3天左右完成这个网站,当时是用360浏览器调试页面的(那时候不知道什么浏览器主流,以为所有浏览器都一样的样式),所以页面普遍很丑,其实我个人觉得还好,大家下载网盘资源,那个是V2.0版本!下载链接:https://pan.baidu.com/s/1kbPj2CcbgauOCLFpZbVDGA 提取码:czvj

2020-12-16

JS入门小项目-王者荣耀

非常简洁美观的网页,实现了图片自动轮播、点击按钮切换图片、二级菜单显示和隐藏、抖音风格字体等功能,JS入门必备小项目!

2020-12-16

安卓开发-个人电影收藏信息管理系统

移动通信智能终端软件设计课程设计-个人电影收藏信息管理系统,这是我课程设计做的项目,数据库相关操作的逻辑代码我都是用最简单的,通俗易懂,还有拍照上传和从图库选择等实时信息采集功能。还有很多其他的知识比如音乐播放功能、登录功能、一键打印功能等,整个系统简洁美观,音乐动人,播放音乐的时候千万不要把声音调到40%以上哦!大家加油!

2020-12-15

vue-devtools/shells/chrome

vue-devtools是一款基于Chrome浏览器的插件,用来调试Vue应用,可以大大提高Vue项目开发效率,堪称Vue开发神器!

2020-12-08

安卓开发-贫困生信息管理系统

物联网移动应用开发期末项目-贫困生信息管理系统,这是我期末做的项目,数据库相关操作的逻辑代码我都是用最简单的,重要的话说三遍,太难的点用三次,通俗易懂,还有很多其他的知识比如音乐播放功能、登录功能、一键打印功能等,整个系统简洁美观,音乐动人,播放音乐的时候千万不要把声音调到40%以上哦!大家加油!

2020-11-05

安卓开发小游戏-王者荣耀

入门安卓开发的新手非常适用的小游戏,代码简单易懂,游戏美观有趣,弄懂这个小游戏,你对安卓应用布局的设计与规划一定有更深的理解,还有一些逻辑计算、强大控件的使用、弹出提示框等亮点,绝对能让新手感受到安卓开发的魅力,让你在漫长枯燥的生涯坚持学下去,更能在同学中脱颖而出,技高一筹!大家加油!

2020-11-05

空空如也

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

TA关注的人

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