- 博客(45)
- 收藏
- 关注
原创 双token无感刷新(vue3+node.js)
使用刷新令牌(refresh token): ○ 应用程序在首次登录成功后会获得一个访问令牌(access token)和一个刷新令牌(refresh token)。 ○ 访问令牌通常有较短的有效期,而刷新令牌的有效期较长。2. 自动刷新: ○ 当访问令牌即将过期时,应用程序会在后台使用刷新令牌来获取新的访问令牌。 ○ 这个过程通常是透明的,用户不会察觉到任何变化。
2024-09-19 17:02:22
1022
1
原创 Cannot create property ‘value‘ on string ‘codeReport‘
变成了字符串,覆盖了前面定义的响应式。失去响应式,变成一个普通的字符串。外部ref定义了一个响应式的。用作参数使用,这会导致外部的。,这时我们再去执行下一行代码。当函数被调用时,输出字符串。已经不是响应式,没有。
2024-03-18 10:34:17
1403
原创 pnpm安装依赖报错Error: EPERM: operation not permitted, renameXXX
pnpm安装依赖报错Error: EPERM: operation not permitted, renameXXX
2024-03-12 18:33:33
2874
原创 前端面试——W3C标准及规范
万维网联盟标准不是某一个标准,而是一些列标准的集合。网页主要有三部分组成:结构(Structure)、表现(Presentation)、行为(Behavior)。对应的标准也有三方面:结构化标准主要包括XHTML和XML,表现标准语言主要包括CSS、行为标准主要包括(如W3C DOM)、ECMAScript等。这些标准大部分是W3C起草发布,也有一是其他标准组织制定的标准,比如ECMAScript(European Computer Manufacturers Association)的ECMAScri
2024-03-11 12:19:18
701
原创 axios封装
5 // 如果存在,则统一在http请求的header都加上token,这样后台根据token判断你的登录情况,此处token一般是用户完成登录后储存到localstorage里的。大部分情况下,请求头都是固定的,只有少部分情况下,会需要一些特殊的请求头,这里将普适性的请求头作为基础配置。没有一个绝对的标准,只要你的封装可以满足你的项目需求,并且用起来方便,那就是一个好的封装方案。封装的同时,你需要和 后端协商好一些约定,请求头,状态码,请求超时时间.......
2024-02-23 18:26:57
1034
原创 $nextTick有什么作用?
4 console.log(this.$el.textContent) // => '修改后的值'4console.log(this.$el.textContent) // => '修改后的值'2console.log(this.$el.textContent) // => '原始的值'2console.log(this.$el.textContent) // => '原始的值'7 console.log(vm.$el.textContent) // 修改后的值。
2024-02-23 18:25:59
1043
1
原创 前端面试常考之——Vue前端路由权限控制(vuex版本)
菜单的控制在登录请求中,会得到权限数据,当然,这个需要后端返回数据的支持。前端根据权限数据展示对应的菜单,点击菜单才能查看相关的界面界面的控制如果用户没有登录,手动在地址栏敲入管理界面的地址,则需要跳转到登录页。如用户已经登录,可是手动敲入非权限内的地址,则需要跳转404界面按钮的控制在某个菜单的界面,还得根据权限数据,展示出可进行操作的按钮,比如删除,修改增加请求和响应的控制如果用户通过非常规的操作,比如通过浏览器调试工具将某些禁用的按钮变成启用状态,此时发的请求,也应当被前端所拦截
2024-02-23 17:29:11
2042
原创 为什么要用promise?
promise是ES6中用来处理 异步操作 的。如果不使用promise,就需要使用 回调函数来处理异步操作后的结果,此时如果有 多个有顺序 的异步操作,会造成回调的嵌套,引发 回调地狱。
2024-01-31 16:58:28
1074
原创 最好理解文章——什么是闭包?
闭包就是能够读取其他函数内部变量的函数。由于在Javascript语言中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。
2024-01-26 15:26:27
722
原创 git管理代码,git常用命令
git是一个开源的分布式版本控制系统,与SVN类似但是Git是分布式的,利于分支来操作管理代码,Git的操作一般使用命令,SVN操作一般倾向于可视化页面
2024-01-19 16:39:01
398
原创 JS闭包 经典使用场景和闭包面试必刷题
闭包允许函数访问并操作函数外部的变量。红宝书上对于闭包的定义:闭包是指有权访问另外一个函数作用域中的变量的函数。 MDN 对闭包的定义为:闭包是指那些能够访问自由变量的函数。这里的自由变量是外部函数作用域中的变量。概述上面的话,闭包是指有权访问另一个函数作用域中变量的函数
2024-01-17 18:37:26
510
原创 DOM和BOM常用API
DOM 是指文档对象模型;是为了操作文档出现的 API,可以访问HTML文档的所有元素, document 是其的一个对象;BOM 是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”。是为了操作浏览器出现的 API,window 是其的一个对象。
2024-01-17 14:11:42
1011
原创 JS 浅拷贝与深拷贝的用法
浅拷贝Object.assign(newobj,obj),深拷贝JSON.parse(JSON.stringify(obj))
2024-01-16 17:31:11
374
原创 一篇全——函数的this指向(箭头函数,call,apply,bind方法)
this一般指向我们的调用者,箭头函数没有this,call,apply,bind改变函数this指向方法
2024-01-16 15:25:19
498
原创 HTTP 与 HTTPS 有哪些区别?
HTTP 是超文本传输协议,信息是**明文传输**,存在安全风险的问题。HTTPS 则解决 HTTP 不安全的缺陷,在 TCP 和 HTTP 网络层之间加入了 **SSL/TLS** 安全协议,使得报文能够加密传输。
2024-01-15 17:03:46
418
原创 HTTP 缓存机制——强制缓存和协商缓存
强缓存指的是只要浏览器判断缓存没有过期,则直接使用浏览器的本地缓存,决定是否使用缓存的主动性在于浏览器这边。当我们在浏览器使用开发者工具的时候,你可能会看到过某些请求的响应码是 304,这个是告诉浏览器可以使用本地缓存的资源,通常这种通过服务端告知客户端是否可以使用缓存的方式被称为协商缓存。
2024-01-15 14:50:37
1112
原创 vue3 生命周期与vue2的区别
Vue3.0中可以继续使用Vue2.x中的生命周期钩子,但有有两个被更名:`beforeDestroy`改名为 `beforeUnmount``destroyed`改名为 `unmounted`组合式API :onMounted等
2024-01-15 10:57:29
394
原创 ref与reactive函数区别,面试之vue2与vue3响应式原理的区别
ref通过Object.defineProperty()的get与set来实现响应式(数据劫持)。reactive通过使用Proxy来实现响应式(数据劫持), 并通过Reflect操作源对象内部的数据
2024-01-15 10:41:21
1325
原创 20-Vuex
概念在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。何时使用?多个组件需要共享数据时搭建vuex环境npm i vuex在 main.js 中引入 store||或备注:若没有网络请求或其他业务逻辑,组件中也可以越过actions,即不写dispatch,直接编写commit。
2023-12-15 14:15:59
30
原创 19- vue-router路由
路由组件通常存放在pages文件夹,一般组件通常存放在components文件夹。 - 通过切换,“隐藏”了的路由组件,默认是被销毁掉的,需要的时候再去挂载。 - 每个组件都有自己的$route属性,里面存储着自己的路由信息。 - 整个应用只有一个router,可以通过组件的$router属性获取到
2023-12-15 14:14:54
734
原创 15- MVVM工作原理,一步理解到位
ViewModel 作为 MVVM 的核心,是它把当前页面的数据源(Model)和页面的结构(View)连接在了一起。当数据源发生变化时,会被 ViewModel 监听到,VM 会根据最新的数据源自动更新页面的结构当表单元素的值发生变化时,也会被 VM 监听到,VM 会把变化过后最新的值自动同步到 Model 数据源中。
2023-12-15 13:04:15
398
原创 13-vue目录结构 命名规范
| | └── index.js// 路由脚本文件(配置路由 url链接 与 页面组件的映射关系)| | | └── index.js// 仓库脚本文件(vuex插件的配置文件,数据仓库)| | ├── main.js // 全局脚本文件(项目的入口)| | └── index.html // 当前项目唯一的页面。| | ├── favicon.ico // 标签图标。| | ├── App.vue // 根组件。| | ├── views // 页面组件。有复数结构时,要采用复数命名法。
2023-12-15 12:35:29
102
原创 预处理器sass和less
CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题,例如你可以在CSS中使用变量、简单的逻辑程序、函数等等在编程语言中的一些基本特性,可以让你的CSS更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处。
2023-12-15 12:16:32
53
原创 CSS flex布局 - 响应式设计 - 定位
是一种网络设计布局,页面的设计与开发应当根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相应的响应和调整。(同时适配PC + 平板 + 手机等)
2023-12-15 12:14:02
1482
原创 闭包及垃圾回收机制
嵌套之间的函数会形成作用域链,每次对变量的访问实际上都是对整条作用域链的遍历查找,先查找最近的作用域,最后再查找全局作用域,如果在某个作用域找到了对量就会结束本次查找过程。GC机制 : 在JavaScript中,如果一个对象不再被引用,那么这个对象就会被GC回收,否则这个对象一直会保存在内存中。基本数据类型:string,number、boolean、undefined、null。复杂数据类型(引用数据类型):Object、Array、Date等。栈:函数参数值、局部变量的值等、基本数据类型放到栈里面。
2023-12-15 12:08:40
189
原创 JS面向对象编程 OOP
面向对象是把事务分解成一个个对象,以对象功能来划分问题,而不是步骤,然后由对象之间分工合作。 具有灵活、代码可复用、容易维护,更适合多人合作的大型项目。 面向对象编程的特性:封装性、继承性、多态性
2023-12-05 18:26:38
938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人