自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx+jenkins实现按时间拉取远程代码并打包

dnf install jenkins // --nogpgcheck(可以不加)编辑/etc/yum.repos.d/jenkins.repo文件。也可以在location位置写文件存储的文章。返回主页面,进入系统管理,进入全局工具配置。可以在root位置写文件存储的位置。指定在什么地址下载jenkins。将要部署的代码推送到git仓库上。返回主页面,点击刚才保存的任务。将打包好的文件上传到服务器上。在构造环境中选择node环境。在系统管理中,选择插件管理。下载node,重启服务器。

2023-12-06 18:39:47 450

原创 vue 移动端适配 自适应布局(vite+webpack)

在 Vue 项目中安装 postcss-px-to-viewport 插件。在项目根目录下创建 postcss.config.js 配置文件。在项目根目录新建一个postcss.config.js文件。在main.js中引入amfe-flexible。vite.config.js中的配置。vite.config.js中的配置。在main.js中引入。

2023-11-09 15:50:51 600

原创 vue3+ts import App.vue 报错 解决方案

在创建vue3+ts的脚手架之后会出现在main.ts中可能会出现报错。

2023-10-23 09:31:19 641

原创 vue2手动封装一个双击事件

vue2手动封装一个双击事件。

2023-10-19 19:22:58 236

原创 前端跨域的几种方法

【代码】前端跨域的几种方法。

2023-09-17 10:02:03 104

原创 关于vue3+ts使用别名后无ts类型提示的解决方案

关于vue3+ts使用别名后无ts类型提示的解决方案

2023-09-16 10:55:27 751 1

原创 理解webpack

Webpack 是一个功能强大的静态模块打包工具,可以将多个模块打包成一个或多个静态资源文件。它通过加载器和插件来处理和优化模块,支持模块化开发和各种类型的文件处理。Webpack 的配置灵活,可以满足不同项目的需求。

2023-09-11 08:21:51 39

原创 子盒子在父盒子中水平垂直居中常用的四种方法

父盒子使用相对定位,子盒子使用。

2023-09-11 08:21:22 551

原创 前端面试题详解

当代码在一个函数内部访问变量或标识符时,JavaScript引擎首先查找当前函数的作用域内是否存在这个标识符,如果找到了就使用它,如果没有找到,则会沿着作用域链向上查找,直到找到匹配的标识符或达到全局作用域为止。事件代理(Event Delegation)是一种常见的前端开发技术,它利用了事件冒泡(event bubbling)的特性,通过将事件处理程序绑定到一个祖先元素,来管理子元素上的事件。总的来说,组合式API是Vue 3的一项重要改进,它提供了更多的灵活性和可组合性,使得组件的编写和维护更加容易。

2023-09-11 08:20:27 103

原创 http协议和https协议的区别,https的加密原理

HTTPS(Hypertext Transfer Protocol Secure)是在 HTTP 的基础上加入了安全层(SSL/TLS)的协议,用于保护数据在传输过程中的安全性。HTTP(Hypertext Transfer Protocol)是一种用于在网络上进行数据传输的协议,它是基于客户端-服务器模型的,通过请求-响应的方式进行通信。如果证书有效,客户端会生成一个随机的对称加密密钥,并使用服务器的公钥进行加密。服务器使用自己的私钥解密客户端发送的加密数据,并使用客户端生成的对称加密密钥进行加密。

2023-09-10 21:05:15 81

转载 TCP为什么需要进行三次握手深入解析

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;

2023-09-10 21:04:42 45

原创 面试题——小程序——包括技术性、概念性、比较性问题,以及项目业务流程问题

通过设置button的伪元素样式进行去除: button::after{ display: none;在开发过程中需要对数据请求进行统一的功能封装,但请求封装的操作过程也比较复杂,考虑的点与面也非常的多,如果没有极强的业务分析与代码编写能力,一般不考虑自行封装wx.request中没有interceptors拦截器操作,对于这部分内容需要自行考虑。

2023-09-10 18:28:42 2265

原创 json-server详解

要实现自定义路由,可以在启动时使用–routes参数指定一个JSON文件来配置路由。话不多说上代码:db.json"posts": [],这个路由配置将/posts/:id/comments请求映射到/comments/?postId=:id上,而其他请求将被直接映射到与请求路径相同的JSON文件路径上。现在,当你向发送请求时,会返回包含postId为1的所有评论的JSON对象,而/posts`请求会返回posts数组。

2023-09-08 20:55:09 395

原创 使用JS获取当前地理位置的两种方法

HTML5 Geolocation API是W3C定制的用于获取用户地理位置信息的标准API,它可以使用纯JavaScript来获取用户的GPS坐标信息,这是一种免费的获取位置的方法。如果HTML5 Geolocation API无法满足需求,可以使用IP定位API来获取用户的位置信息。以上是两种获取当前地理位置的方法,你可以根据实际情况选择其中一种或者结合使用。如果需要更精确的位置信息,可以尝试使用GPS设备或者其他辅助定位设备。

2023-09-07 17:08:48 2341

原创 vue3 react对比理解hook

react中自定义hook必须以use开头。vue中自定义hook没有强硬的要求,但是我们为了代码的规范性考虑,一般也是会以use开头的。

2023-09-06 11:10:05 245 1

原创 vue2 百道面试题(含答案)

组件中data的定义必须是一个函数:每个组件需要拥有自己的数据内容,并且不希望干扰到其它的组件内容,如果定义成Object对象的话,那么将会作用于所有的组件内容,在一个组件中进行data数据修改将会影响到其它组件。所以我们需要将它定义成函数的形式,函数返回的对象才是真正意义上数据的存储仓库(data),这样设计的目的是为了让每个组件间的数据都是独立的,互不影响。当组件的嵌套与Html5的规范产生冲突时我们可以使用is属性来解决冲突,比如:组件上的所有事件都是vue自定义事件。

2023-09-06 10:29:01 230 1

原创 vue3面试题【持续更新中】

props: {

2023-09-05 09:32:10 168 1

原创 BTCU区块链——从0到1到无穷大【更新中】

此文章为哔哩哔哩视频笔记视频链接。

2023-09-04 20:49:09 419 1

原创 前端面试题一览——面试so easy!

前端面试题总结(正在急速更新中),包括基础的html、css、JavaScript、es6、vue、react、typeScript、webpack、git版本控制工具

2023-08-18 14:47:52 45

原创 @reduxjs/toolkit的理解,和react-redux有什么区别?

1、React-redux是官方react UI绑定层,允许React组件从redux存储中读取数据,并将操作分派到存储以更新的状态。提供了connect,Provider等API,帮助我们连接react和redux,实现的逻辑会更加的严谨高效2、@reduxjs/tookit是对Redux的二次封装,开箱即用的一个高效的Redux开发工具,使得创建store,更新store。

2023-08-17 15:01:09 117 1

原创 react中Jsx渲染成真实dom的过程

首先,JSX本质其实是javascript的语法扩展,和模板语言非常接近,但是其充分具备javascript的能力。然后,createElement函数对于key和ref等特殊的props进行处理,并获取defaultProps对默认的props进行赋值,并且对传入的子节点进行处理,最终构成一个虚拟DOM对象。最后,ReactDOM.render将生成好的虚拟DOM渲染到指定的容器上,其中采用了批处理,事务等机制并且对特定的浏览器进行了性能优化,最终转换为真实DOM。

2023-08-17 14:32:32 90 1

原创 package.json中版本号的规则

【代码】package.json中版本号的规则。

2023-08-17 14:22:00 113

原创 AMD、CMD、commonJS模块化规范的区别

对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。CMD 推崇 as lazy as possible(尽可能的懒加载,也称为延迟加载,即在需要的时候才加载)。加载模块使用require方法,该方法读取一个文件并执行,最后返回文件内部的exports对象。所以,定义一个模块就是写一个新的js文件,但是最后要将文件的内容exports出来。AMD 的 API 默认是一个当多个用,CMD 的 API 严格区分,推崇职责单一。也就是说,AMD规范的应用,需要借助RequireJS第三方库才能实现。

2023-08-17 14:11:53 104 1

原创 为什么普通 for 循环的性能远远高于 forEach 的性能,请解释其中的原因

性能上:对于数组arraylist来说,是顺序表,使用for循环可以进行顺序访问,速度比较快;对于linedlist来说,是单链表,使用for循环每次都要从第一个元素读取next域来读取,速度非常慢;对于 arraylist,是顺序表,使用 for 循环可以顺序访问,速度较快;对于 linkedlist,是单链表,使用 for 循环每次都要从第一个元素读取 next 域来读取,速度非常慢;for循环就是通过下标,对循环中的代码反复执行,功能强大,可以通过index取得元素。

2023-08-17 09:48:41 73 1

原创 ts中类的修饰符

只能在基类和子类访问 ,实例不能直接访问,可以通过方法充当中间人。

2023-08-16 14:20:34 31 1

原创 interface和type的区别

如 type myType = typeof someObjtype可以申明。

2023-08-16 14:17:52 33 1

原创 TS中函数重载的理解

在我的理解中,函数重载和我们reducer较为相似,都是接收不同的对象,通过判断参数的类型,来达到同一函数实现不同功能的效果,不同的是函数重载是我们ts中的概念,受到ts语法的约束,需要声明传递什么类型的参数时,需要返回什么样的值。函数重载是有一个函数实现签名外加一个或者多个函数重载签名组成。函数签名即指:函数名 函数参数 参数类型 返回值类型四者合成。一组具有相同名字,不同参数列表和返回值无关的函数。

2023-08-15 22:00:05 173 1

原创 如何使用css实现一个三角形

最后一种方法——clip-path,它是最精简和最可具扩展性的。不过目前其在浏览器兼容性不是很好,使用时要考虑浏览器是否支持。linear-gradient 需要结合 background-image 来实现三角形,下面就来逐步使用渐变实现一个三角形。根据想要三角形的样式,让 border 的某一边边可见,其他边都设置为透明。使用 CSS 绘制三角形的第一种方法就是使用。给定一个宽度和高度都为 0 的元素。

2023-08-14 09:36:31 155

原创 说说如何借助webpack来优化前端性能?

删除多余的代码、注释、简化代码的写法等等⽅式。可以利⽤webpack的 UglifyJsPlugin 和 ParallelUglifyPlugin 来压缩JS⽂件, 利⽤ cssnano (css-loader?在构建过程中,将引⽤的静态资源路径修改为CDN上对应的路径。可以利⽤webpack对于 output 参数和各loader的 publicPath 参数来修改资源路径。SplitChunksPlugin插件来进⾏公共模块抽取,利⽤浏览器缓存可以⻓期缓存这些⽆需频繁变动的公共代码。

2023-08-14 09:31:37 47

原创 利用递归进行深拷贝

【代码】利用递归进行深拷贝。

2023-08-08 14:04:00 37 1

原创 git命令的基本使用

git是全世界最先进的版本控制工具。

2023-08-07 18:36:11 33 1

原创 js类型校验的三种方法

【代码】js类型校验的三种方法。

2023-08-06 21:13:33 265

原创 事件循环的理解

从上面我们可以看到,同步任务进入主线程,即主执行栈,异步任务进入任务队列,主线程内的任务执行完毕为空,会去任务队列读取对应的任务,推入主线程执行。出现分歧的原因在于异步任务执行顺序,事件队列其实是一个“先进先出”的数据结构,排在前面的事件会优先被主线程读取。宏任务的时间粒度比较大,执行的时间间隔是不能精确控制的,对一些高实时性的需求就不太符合。同步任务:立即执行的任务,同步任务一般会直接进入到主线程中执行。这时候,事件循环,宏任务,微任务的关系如图所示。异步任务:异步执行的任务,比如。

2023-08-06 21:00:03 34

原创 闭包的优缺点

在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成 “定义在一个函数内部的函数”。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。2、还有有一个非常严重的问题,那就是内存浪费问题,这个内存浪费不仅仅因为它常驻内存,更重要的是,对闭包的使用不当会造成无效内存的产生。3、逻辑连续,当闭包作为另一个函数调用的参数时,避免你脱离当前逻辑而单独编写额外逻辑。2、在内存中维持一个变量(用的太多就变成了缺点,占内存);1、常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。

2023-08-06 20:54:49 152

空空如也

空空如也

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

TA关注的人

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