自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue插件(按需引入+全局引入)

1.(全局引入)在DataV项目中index.ts全量注册插件。内部源码就是判断插件有没有 install 并自动执行。2.(按需引入)在单个组件的index.ts中注册全局组件。一个可能上述三种都包含了的功能库 (例如。注册一到多个全局组件或自定义指令。中添加一些全局实例属性或方法。3.main.ts 引入。上面是总结,下面是证明。

2026-06-22 00:03:59 196

原创 前端热门二次封装开源项目

2. Axios 封装通用方案(无单独明星 npm 包,项目必封装)1. VueUse(Vue 组合式 API 封装天花板)1. Avue(最经典 ElementUI 二次封装)3. Formily(阿里出品,复杂表单封装天花板)4. FormCreate(Vue 表单封装)RuoYi-Vue(若依,国内最火开源后台)2.Vxe Table(重度封装全能表格)Vue-Vben-Admin(企业级标杆)Ant Design Pro(阿里官方)shadcn/ui(当前全球最火)

2026-06-21 23:27:54 193

原创 Promise的静态方法

catch()

2026-06-21 16:18:44 204

原创 pina 和vuex 的区别?

组件 dispatch (action) → action 请求接口 → commit (mutation) → mutation 修改 state。所有模块最终合并进一个大 store,模块嵌套层级深,维护麻烦;各自独立,按需引入,互不干扰,天然隔离,无命名冲突问题;更新一个 store 不会触发其他模块冗余渲染,组件直接调用 action → action 发请求 + 直接改 state,少一层代码。Pinia:直接导入 store 实例,保留响应式,无冗余辅助函数。

2026-06-18 13:40:59 379

原创 vue面试题

缺点:相关逻辑分散在 data/methods/ 生命周期,大型组件难维护、复用逻辑繁琐(mixin 弊端:命名冲突、来源不清晰)修改数据不会立即更新视图;同一个同步代码多次修改,放入异步队列,一轮事件循环结束统一更新,减少 DOM 频繁操作。Vue2 编译优化弱:没有静态提升、没有定向 Diff 标记,Diff 要整棵树对比。描述 DOM 节点的 JS 对象,避免频繁操作真实 DOM。Vue2 只有 Options API。虚拟 DOM & 根节点。Vue3 两种写法并存。

2026-06-17 22:44:08 405

原创 深拷贝/浅拷贝

拿到原对象的所有属性键名,遍历每一个键,对当前属性的值递归调用 deepClone 做深层拷贝,再把递归拷贝后的结果赋值给新容器对应的同名属性。3.判断缓存:如果 WeakMap 中已经存过当前要拷贝的对象,说明出现了循环引用,直接返回缓存里已经拷贝好的副本,防止递归死循环报错。4.根据类型创建对应空容器:是数组就新建空数组,是普通对象就新建空对象,作为拷贝后的容器 cloneTarget。7.全部属性遍历递归完成后,返回最终拷贝完成的全新对象 / 数组。

2026-06-16 22:20:36 218

原创 js 类型 / 怎么精准的判断js 类型/类型转换

Object(普通对象、Array、Function、RegExp、Date 都属于 Object)

2026-06-16 22:02:52 233

原创 大文件上传

并发控制:靠while限制最多 4 个请求同时跑;补位逻辑:请求成功后递归start(),保证通道满载;时resolve,让外层执行合并;核心优势:相比分组 Promise.all,无空闲等待,资源利用率最高。+ // 有请求,有通道+ max--;// 占用通道+ idx+++ max++;// 释放通道+ } else {+ start();+ }+ });+ });+}// 这里一起上传,碰见大文件就是灾难。

2026-06-10 03:23:48 194

原创 大文件分片上传

用webworker--创建 WebWorker,worker.postMessage,worker.onmessage worker.terminate();js是单线程,计算文件会霸占主线程,导致页面卡死所以用webworker 开启再开启一个js线程去计算。调接口参数 fileSize + chunkSize 可以计算出totalChunks。然后把所有切片的已上传大小累加,除以文件总大小计算出总进度百分比,我通过原生的 onProgress 上传进度事件,实时获取每个切片的已上传大小,

2026-06-10 02:25:19 201

原创 通用方法--下载文件

【代码】通用方法--下载文件。

2026-04-01 16:02:27 31

原创 axios封装

当请求401后,直接发刷新token的接口,cookie会自动携带给服务器。Axios 拦截器 + 无感刷新(request.js)Pinia 存储用户状态(userStore.js),只有请求有 body 时才需要设置。

2026-04-01 15:47:39 167

原创 第三方开票项目遇到的问题(ElementUI相关)

然后在on-remove的方法上,用定时器控制loading。el-upload绑定v-model="loading"问题6:设置el-popover的背景色。问题3:el-input只能输入数字。把类名写在el-popover的后面。问题5:自定义列的自定义表头。在scoped中设置不管用。问题4:自定义表格表头。必须在style中设置。

2025-11-03 10:30:26 190

闭包-防抖节流介绍和代码

闭包-防抖节流介绍和代码

2026-04-03

<微信小程序PPT截图>

小程序笔记

2026-02-04

第三方开票项目遇到的问题(ElementUI相关)

第三方开票项目遇到的问题(ElementUI相关)

2025-11-03

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

TA关注的人

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