自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 async/await 函数到底怎么使用 try catch ?

然后 getUserInfo 函数中断执行,这是符合逻辑的,对于有依赖关系的接口,中断执行可以避免程序崩溃,这里唯一的问题是 try catch 貌似占据了太多行数,如果每个接口都写的话看起来略显冗余。几种写法,初看可能觉得第三种 catch 这种写法是最好的,但是细想下,从用户体验上来看,我觉得 try catch 是最好的,逻辑直观、符合同步编程思维,控制台不会暴露。来捕获异常, 可是实际上我看了很多项目的代码,遵循的并不是严谨,很多都没有用,甚至 catch 函数都没写,这是为什么呢?

2025-04-23 09:46:29 408

原创 封装 axios 拦截器实现用户无感刷新 access_token

vuexmutations(vuex不过多介绍了)存储token与},},axios(也不过多介绍了)的响应拦截器if (!console.log('抱歉,您的登录状态已失效,请重新登录!')return Promise.reject(err)//重新发起请求})})约定返回401状态码表示access_token过期或者无效,如果用户发起一个请求后返回结果是access_token过期,则请求刷新access_token的接口。请求成功则进入then。

2024-12-25 14:55:22 1144 1

原创 接口一异常你的前端页面就直接崩溃了?

在 JavaScript 开发中,细节处理不当往往会导致意想不到的运行时错误,甚至让应用崩溃。可能你昨天上完线还没问题,第二天突然一大堆人艾特你,你就说你慌不慌。

2024-11-27 10:15:08 1000

原创 检查前端项目和node项目中未被使用的依赖包

Depcheck 是一款用于分析项目中依赖关系的工具,它可以帮助我们找出以下问题:在 package.json 中,每个依赖包如何被使用、哪些依赖包没有用处、哪些依赖包缺失。你可以看到,当我们添加了一个动态包导入之后,babel-polyfill 被从未使用的依赖中移除掉了。接下来的内容中,我们不是使用这个库,而是自己编写一个脚本来实现我们想要的功能。这两个正则表达式的目的是为了在文件中找到对指定依赖的引用,无论这些引用是静态的还是动态的。运行上面的代码我们可以获取到哪些依赖包是没有被使用到的。

2024-09-24 11:00:27 582

原创 工作中常用到的前端小知识

一个简单的原因就是,js在设计之初只是进行一些简单的表单校验,这完全不需要多线程,单线程完全可以胜任这项工作。即便后来前端发展迅速,承载的能力越来越多,也没有发展到非多线程不可的程度。而且还有一个主要的原因,设想一下,如果js是多线程的,在运行时多个线程同时对DOM元素进行操作,那具体以哪个线程为主就是个问题了,线程的调度问题是一个比较复杂的问题。HTML5新的标准中允许使用new Worker的方式来开启一个新的线程,去运行一段单独的js。

2024-09-24 09:40:01 614

原创 怎么看待前端消息实时推送

马上下班,马上五一,快看完这一篇再下班吧🫰。

2024-04-30 17:57:04 588 1

原创 执行npm run serve/build的时候到底执行了什么?

举一反三,npm run serve也就不难理解了,node_modules/.bin下面一定有两个vue-cli-service的文件,然后很容易就会找到vue-cli-service.js 这个文件(未完待续)众所周知,npm run 执行的是package.json里面scripts对象的key对应的value值,npm run serve实际执行的就是npm run vue-cli-service serve。我们再换个写法,毋庸置疑,肯定会报错,因为找不到自定义的my-npm-test。

2024-04-25 15:34:49 1054 1

原创 SessionStorage多窗口到底能不能共享信息

其实不仅window.open("同源页面")这种方式新开的页面会复制之前的,通过a标签新开的页面同样也会,原理相同,在这就不赘述了。

2024-03-15 11:05:03 1328 1

原创 面试官:如何实现在浏览商品时,进入详情,再返回,列表刷新,滚动条还在之前的位置?

当用户点击商品详情时,我们记录当前的滚动条位置,然后在返回列表页时,首先触发列表的刷新操作,然后再将之前记录的滚动条位置重新设置回去。利用Vue Router来管理页面跳转,使用了VueX来存储和恢复滚动条位置。在浏览商品时,点击商品详情,然后返回,要求列表刷新,同时滚动条还在之前的位置,怎么实现?组件更新时,检查是否有之前保存的滚动条位置,并将滚动条位置恢复到之前的状态。页面时,记录当前滚动条位置并将其保存在Vuex store 中。action来保存当前滚动条位置,在返回列表页时,再使用。

2024-01-25 11:32:05 1418

原创 一个页面同时发出百条请求时怎么处理?

在这种情况下,可以将一部分内容延迟加载,例如将广告或某些推荐文章放置在用户滚动到页面底部时才加载,而不是在页面初始加载时就全部请求和展示。在发送批量请求时,前端可以将多个独立的请求合并为一个请求发送给后端,通常使用类似于RESTful API的方式。如果不使用批量请求和数据合并,页面可能会发出100条单独的请求来获取每个用户的动态信息,导致大量的网络开销和响应时间延长。在处理多个请求时,可以根据请求的重要性和紧急程度为它们设置优先级,以确保重要内容能够优先加载,从而提高用户感知的加载速度。

2024-01-19 11:00:02 2734 1

原创 高质量的前端代码

有良好的可读性,代码应易于理解。如使用清晰的命名、保持函数和方法简短、使用注释来解释复杂的代码段等。应该尽可能地简洁,避免不必要的复杂性和冗余。在一个项目中,代码应该有一致的风格和模式。这使得代码更易于阅读和理解。可为维护性高,应该易于修改和扩展。这通常意味着代码应该遵循某种设计模式,避免过度复杂的依赖关系,并且有良好的模块化。好的代码应该是直观的,当有人需要进行修改时,他们应能迅速找到需要修改的部分,能够快速进行更改,而且不容易引入新的错误。健壮性有考量,对于边界场景有覆盖和处理。

2024-01-16 11:00:50 2803 1

原创 beforeRouterEnter为data赋值未生效

之前在mounted或在created中写的方法通通放在next的回调函数中,赋值操作进来写在方法中,问题就解决了。从不同来源跳转该页面,为isView赋boolen值,进而判断是否显示某些操作。当执行next里面的时候,该组件内生命周期几乎已经执行完毕(异步除外)

2024-01-15 15:35:18 795

原创 部分性能优化

路由懒加载。

2024-01-15 15:04:31 2097

封装 axios 拦截器实现用户无感刷新 access-token

封装 axios 拦截器实现用户无感刷新 access-token

2024-12-25

空空如也

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

TA关注的人

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