- 博客(15)
- 收藏
- 关注
原创 v-permissions 指令封装(vue3+ts+pinia)
在项目中常见需要权限控制 通常一个组件内部封装好了不同的功能按钮,但是对于不同角色提供的权限不同,所有需要进行相应的全局组件封装 这类操作还有图片懒加载的指令,防抖,节流的指令。pinia里面存储用户的permission这个就根据自己的后端返回来决定了,需要注意一点 就是在使用指令时传入的值需要与后端返回的值对应好,先创建一个 directive文件夹,创建index.ts 文件 (如果有多个指令 建议继续创建下一级文件夹存放对于的代码,便于维护)创建同级文件 permission.ts。
2025-07-03 17:48:04
323
原创 页面加载白屏时间长的原因有什么,页面白屏如何优化?
浏览器下载HTML后,首先解析头部代码,进行样式表下载,然后继续向下解析HTML代码,构建DOM树,同时进行样式下载。理想情况下,样式表下载速度够快,DOM树和CSSOM树进入一个并行的过程,当两棵树构建完毕,构建渲染树,然后进行绘制。页面渲染的时间越短,用户等待的时间就越短,用户感知到页面的速度就越快。这样可以极大的提升用户的体验,减少用户的跳出,提升页面的留存率。当CSS样式文件没有下载完成时,浏览器解析HTML遇到了内联JS代码,此时,浏览器暂停JS脚本执行,暂停HTML解析。
2025-04-04 16:44:31
498
原创 项目中常用的 .env 文件原理是什么?如何实现?
用 fs.readFileSync 读取 .env 文件,并解析文件为键值对形式的对象,将最终结果对象遍历赋值到 process.env 上。dotenv 把环境变量加载进 process.env 对于前端项目来说还不够,因为浏览器环境是访问不到 process 的,需要通过 webpack 的 DefinePlugin 在构建阶段把变量替换为对应的值。完善报错输出,用户写的 env 文件自由度比较大,所以需要容错机制。果需要使用变量,则配合如下扩展包使用。文件在我们项目中非常常见,在。
2025-04-04 16:42:03
280
原创 实战项目中,常用的TS
TypeScript 中的映射类型(Mapped Types)是一种非常强大的类型操作符,它可以根据一个已有的对象类型,生成一个新的对象类型。声明文件(Declaration File)是一种特殊的类型文件,用来描述外部 JavaScript 库、模块或对象的类型,以便在 TypeScript 代码中正确引用和使用它们。类型守卫(Type Guards)是 TypeScript 中用来检测类型的一种机制,它可以帮助开发者在运行时检测某个变量的类型,并在不同的条件下提供不同的类型声明。
2025-04-04 16:01:30
2006
原创 详解 Chrome V8 引擎
D8 是一个非常有用的调试工具,你可以把它看成是的缩写。我们可以使用 d8 来查看 V8 在执行 JavaScript 过程中的各种中间数据,比如作用域、AST、字节码、优化的二进制代码、垃圾回收的状态,还可以使用 d8 提供的私有 API 查看一些内部信息。V8源码编译出来的可执行程序名为d8。d8作为V8引擎在命令行中可以使用的交互shell存在。Google官方已经不记得d8这个名字的由来,但是做为的缩写,用首字母d和8结合,恰到好处。
2025-04-04 15:03:44
2805
原创 手写Promise实现所有功能,并通过A+测试
resolve('成功')reject('失败')})控制台打印结果:通过constructor 构造出一个函数,用来接收传进来的回调函数,并执行回调函数。
2025-03-19 23:56:01
736
1
原创 MySQL 安装常见问题处理,包括解决办法,软件下载。
因为我们这样删除并不是彻底删除,如果记得住密码就完全没问题,后面重新登录时需要check密码,才能继续后续操作。这个文件夹里面存的是我们的密码和数据库设置,但这个文件夹是隐藏的,如果要删除,还是用everthing 查找到这个文件 然后删除就行了。(如果先删掉文件夹,可能存在图下标记的软件无法删除)。然后退回去的时候,重新点击这个安装界面就行了,如果不小心多退了下,则会出现以下情况,提示端口已使用。然后输入以下代码,回车,会提示成功删除,这时候就能正常解决了,然后继续按照步骤按照。2.然后进行权限修改。
2024-04-25 20:43:27
2053
2
MySQL windo系统安装8.0以上版本 文档
2024-06-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅