自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 webpack优化策略

4、优化加载速度: 使用Webpack的插件如MiniCssExtractPlugin来提取CSS代码,使用babel-loader的缓存机制等,以减少构建时间和加载时间。3、使用Tree Shaking: 通过配置Webpack的Tree Shaking功能,只保留项目中实际使用到的代码,剔除未使用的代码,减少打包后的文件大小。2、代码分割(Code Splitting): 通过配置Webpack的代码分割功能,将项目代码分割成多个块(chunks),并且在需要的时候按需加载。

2024-04-11 15:23:29 384 1

原创 前端项目优化策略

合理使用keep-alive来缓存页面数据,跳过created,mounted钩子,他有自己特定的钩子activted等。解决方案:XSS 前端替换关键字,建议后端也替换,如的替换,避免脚本的执行。解决方案:XSRF增加验证流程,比如输入密码,指纹,短信验证码,人脸识别等。减少vendor.js的体积,通过按需引入第三方库,或者有些资源可以通过script标签引入。使用SouceMap,来还原线上代码,更方便的去定位线上问题。尽可能的使用事件委托来处理事件的绑定,针对老项目jq。

2024-04-11 15:17:52 917 1

原创 输入URL的那一瞬间浏览器做了什么?

服务器收到这ACK包后,也会对序列号进行加一操作,表示服务器已经确认客户端的回应。DNS的作用类似于电话簿,它将域名与IP地址相对应,使得用户可以通过域名来访问网站,而不需要记住复杂的IP地址,在互联网上,每个网站都有一个唯一的域名,例如www.baidu.com。第四次挥手:客户端接收到服务器的FIN报文段后,会发送一个带有确认号的ACK报文段,确认号是服务器发出的FIN报文段的序列号加上1。⑥本地DNS客户端将IP地址返回给用户的计算机,用户的计算机可以使用这个IP地址来建立与服务器的连接,访问网站。

2024-01-25 17:59:59 344

原创 登录鉴权:cookie、session、sessionId和token

于是就有另一种解决方案:token。用户使用账号密码登录,服务端验证账号密码是否正确,若正确生成sessionId并以cookie的形式返回给前台,浏览器保存cookie,并在下次访问自动带上cookie,服务器在session中匹配前台传过来的cookie,有则不用再登录,否则提示未登录。cookie是一段存储在浏览器中的文本,它可以保存用户的信息,服务端通过设置返回头的set-cookie字段就能返回给浏览器并保存cookie,浏览器又自动设置请求头的cookie字段将cookie传递给服务器。

2024-01-22 16:36:10 1449

原创 JavaScript事件循环

所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。同步任务指的是:在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是:不进入主线程、而进入"任务队列"(task queue)的任务,只有"任务队列"通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。④.执行栈执行完毕,会去任务队列看是否有异步任务,有就送到执行栈执行,反复循环查看执行,这个过程是事件循环(eventloop)1.同步任务与异步任务。

2024-01-19 17:30:24 422 1

原创 前端知识汇总——01数据存储

是栈内存的简称,栈是自动分配相对固定大小的内存空间,并由系统自动释放,遵循FILO(first in last out)先进后出的原则,较为经典的就是乒乓球盒结构,先放进去的乒乓球只能最后取出来。是堆内存的简称,堆是动态分配内存,内存大小不固定,也不会自动释放,堆数据结构是一种无序的树状结构,同时它还满足key-value键值对的存储方式;我们只用知道key名,就能通过key查找到对应的value。比较经典的就是书架存书的例子,我们知道书名,就可以找到对应的书籍。

2023-11-29 16:16:54 73 1

原创 对象数组的排序

开发中经常遇到对数组排序的问题,一般有两种方式排序一种是for循环另外一种是利用数组内置的方法sort,其中sort不仅适用于简单的数组类型排序,也适用于复杂的数据类型排序。

2023-10-09 16:40:04 207 1

原创 vue2数据响应式原理

其中defineReactive这个方法主要是将Object.defineProperty封装到一个函数中,做这一步操作的原因是因为Object.defineProperty设置set属性时需要一个临时变量来存储变化前的值,通过封装利用闭包的思想引入val,这样就不需要在函数外面再设置临时变量了。Vue主要采用的是改装数组方法的方式(push、pop、shift、unshift、splice、sort、reverse),在保留其原有功能的前提下,将其新添加的项变为响应式的。什么是数据响应式原理?

2023-06-29 16:23:06 287 1

原创 在vue中ajax请求放在created还是mounted中

其中先执行同步任务,alert('created'),alert('mounted') 执行完同步任务后再执行异步任务。首先created和mounted里面的代码都是同步执行的,所以在哪个钩子里面执行ajax都不影响页面渲染。created=>mounted=>组件首次渲染=>api请求=>组件重新渲染。//如果放在created渲染,会多渲染一次,所以建议放在mounted。=>mounted=>组件首次渲染。created=>api请求=>组件重新渲染。mounted=>api请求。

2023-06-27 18:25:05 413

原创 css清除浮动的方式

如果我们在给页面元素设置样式的时候,未给父盒子设置高度,当我在父盒中添加元素的时候,父盒子就会被自动撑开,那是因为浏览器会自己计算父盒子里面元素的高度,那么这个高度也可以理解为父盒子的高度,但是如果给子元素设置float属性,子元素变成浮动元素就会脱离文档流。由于浏览器只计算文档流内的元素高度,因此子元素一旦脱离文档流,父盒子的高度就会变成为0,这就是所谓的。方式1 给父盒子添加一个高度,该方式要先确定子元素的高度,如果子元素的高度不确定则该方式不适用,而且写死高度,不够灵活,还容易出现样式的问题;

2023-06-27 17:01:12 48

原创 事件循环以及宏任务与微任务

javascript是一门单线程执行的编程语言。如果在代码中存在定时任务,单线程执行必然会造成阻塞。但是在真正的开发中并没有存在这种情况,那么是什么原因造成的呢?带着上面的疑问我们可以先了解三个概念:执行栈,宿主环境(浏览器/node),执行队列。js分为同步代码和异步代码。在执行的过程中js是先执行同步代码,具体就是把同步代码统一放到执行栈顺序依次执行。因此我们可以得出js中代码的执行顺序是:同步任务->微任务(js引擎发起)->宏任务。js把异步代码分为微任务与宏任务。

2023-06-27 15:21:01 71

原创 闭包详解以及使用场景

a.防抖 (高频率触发的事件,在指定的单位时间内,只响应最后一次,如果在指定的时间内再次触发,则重新计算时间。②.window触发resize的时候,不断的调整浏览器窗口大小会不断的触发这个事件,用防抖来让其只触发一次。当我们想要访问闭包内部的变量时,就可以使用return,将内部函数作为返回值。d.用于公共方法或者包的封装,比如数据响应式原理,axios二次封装等。闭包一定会内存泄漏?b.节流(高频率触发的事件,在指定的单位时间内,只响应第一次。①避免变量被污染,②变量私有化,③保存变量,常驻内存。

2023-06-27 10:52:32 749

原创 js中数据类型的判断方式

三种常见的判断数据类型的方式,最后一种最准确,值得推荐。

2023-06-27 09:19:02 28

原创 js中数组自带的方法

8.push()方法 用于向数组中添加元素。push与unshift方法都能给当前数组添加元素,不同的是,push是在末尾添加,而unshift则是在开头添加。15.filter()方法 用于过滤数组中满足条件的元素,返回一个新的数组,不会改变原数组。10.splice(start,end,element)方法 用于数组元素的添加/删除/替换,会改变原数组。6.shift()方法 删除数组中第一个元素,且返回该元素,可以改变原数组。5.pop()方法 删除数组中最后一个元素,且返回该元素,可以改变原数组。

2023-06-26 18:22:16 73 1

原创 对象数组去重五种方式

1.双for循环去重。2.map方式。3.forEach与includes去重。4.indexof去重。5.对象访问属性的方法。

2023-06-26 16:16:27 4921 1

原创 原型与原型链

原型与原型链

2023-06-20 15:24:31 38

原创 跨域三种常见的解决方案

三种常用的方式解决跨域问题

2023-02-25 17:54:27 458

原创 vue2与vue3的区别

从Vue3发布以来,我就一直对其非常感兴趣,就一直想着将其投入公司的生产中,但是开始考虑到很多不确定性就暂时对一些很小的功能进行一些尝试;慢慢的发现组合式Api的形式非常适合开发(个人感觉),尤其是Vue3.2推出了setup语法糖后直呼真香。后面公司的新项目几乎全部采用了Vue3了。使用Vue3开发也将近大半年了,所以写了这篇文章对Vue2和Vue3做了一个对比总结,一是为了对这段时间使用Vue3开发做些记录,二是为了帮助更多的小伙伴更快的上手Vue3。本篇文章主要采用选项式Api,组合式Api,

2023-01-04 10:26:35 183 1

空空如也

空空如也

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

TA关注的人

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