自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Whistle抓包

Whistle ​​ 的根本原因在于其工作原理属于 ​​ 模式,这是所有基于代理的抓包工具(如 Fiddler、Charles)的共同要求。

2025-07-12 21:58:52 374

原创 单点登录(双token)的简单总结

双token就是控制了用户访问子系统的权限!也就是说,认证中心颁发两个token,一个是普通token一个是刷新token普通token用于访问子系统,时间很短容易过期一旦过期就用刷新token访问认证中心,认证中心查看刷新token没有过期就重新颁发普通token双token增加了控制力我要再登录再去访问,如果短token过期了,就用刷新token重新请求,这个时候你用户要是违法,那我就不给你发新的短token了。

2025-04-27 12:18:04 284

原创 什么是事件循环

事件循环机制,就是,js在处理的时候先执行执行栈中的同步任务,将异步任务放入到任务队列中一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取,检查微任务队列中是否被清空,如果还有微任务未执行,就先执行所有队列中的微任务(也就是将所有微任务压入执行栈中),然后再去执行宏任务,执行完毕当前宏任务之后,再去检查微任务队列,如此往复,直到任务队列被全部清空因为JS是单线程的,为了防止阻塞页面,所以需要用到事件循环机制。

2025-04-19 21:32:01 284

原创 前端实现OSS上传图片(Vue3+vant)

如果 ali-oss 没有提供类型定义文件,你可以尝试安装 @types/ali-oss,但目前可能没有可用的类型定义。如果没有这个包,你可以手动创建一个类型定义文件。在你的项目中创建一个类型定义文件,例如 src/types/ali-oss.d.ts,并添加以下内容:// 添加其他需要的方法和属性确保 TypeScript 配置文件 (tsconfig.json) 中包含了类型定义文件的路径:"./src/types" // 添加自定义类型位置获取服务器相关配置信息安装OSS。

2025-03-01 22:20:14 1263

原创 微信小程序-组件复用机制behaviors

小程序的 behaviors方法是一种代码复用的方式,可以将一些通用的逻辑和方法提取出来,然后在多个组件中复用,从而减少代码冗余,提高代码的可维护性。

2025-02-22 21:51:28 864 1

原创 微信小程序之mobx-miniprogram状态管理

目前已经学习了6种小程序页面、组件间的数据通信方案,分别是:1. 数据绑定: properties2.获取组件实例: this.selectComponent()3.事件绑定: this.triggerEvent()4. 获取应用实例:getApp()5. 页面间通信: EventChannel6.事件总线:pubsub-js在中小型项目中,使用这些数据通信方式已经能够满足我们项目的需求。但是随着项目的业务逻辑越来越复杂,组件和页面间通信就会变的非常复杂。

2025-02-16 17:50:16 1713

原创 使用Hexo搭建个人博客

现在 vercel 提供的默认域名在国内访问有点慢,如果自己在国内有域名,配置个自己的域名再访问速度就可以了。- React,Vue,Hexo 等一些技术栈打包产物都是静态资源,都可以使用 Vercel 进行部署。当然这里并不可以设置,需要将仓库公开,私有化仓库是需要升级的,把当前存储库改为公开。- 配置完成后,之后每一次提交代码到 main 分支都是会自动部署的,非常方便。我这里使用了别人的方法,先用的email登录,然后绑定的邮箱。的平台中,在管理域名那里添加一条txt的记录,不是在。

2025-02-09 22:28:20 747 1

原创 vite环境变量处理

node端用的是comment.js规范,但是现在又没有给这个配置文件开es module规范,那为什么 node 在读取 vite.config.js的时候能够认识 import和 export default。vite做了一个拦截,为了防止我们将隐私性的变量直接送进import.meta.env中,所以做了一层拦截,如果你的环境变量不是以vite开头的,它就不会帮你注入到客户端中去。我们在和后端同学对接的时候,前端在开发环境中请求的后端API地址和生产环境的后端API地址是一个吗?

2025-01-25 22:14:03 1007

原创 开发模式(webpack-dev-server)

完全不会刷新浏览器,保持浏览器状态会自动刷新页面,会重置页面状态热更新示例:js默认是强制更新,除此外其他的类似css代码都是热更新所以一般js代码一更新就会重置页面状态(整个页面逻辑重新开始)

2025-01-18 21:50:04 1108

原创 不同语言异常的传递性

异常传递性是指异常可以向上传递到调用它的上下文,直到找到处理该异常的代码。大多数现代编程语言(如 Java、Python、JavaScript)支持异常的传递性。一些语言(如 C 和 Go)采用不同的错误处理机制,没有传统的异常传递特性。异常的传递性使得错误处理更加灵活和清晰,但也可能导致复杂的调用栈,增加调试难度。

2024-12-29 20:07:14 489

原创 Vite 与 Webpack 的区别

Vite:由于其未打包模式,Vite 在开发时提供了更快的启动和热更新体验,适合小型和中型项目。Webpack:功能强大,适合需要复杂构建配置和优化的大型项目,尤其是在冷启动时提供更稳定的性能。

2024-12-15 23:05:24 1383

原创 Blob:二进制数据处理

Blob 是一种表示不变的原始数据的类,主要用于存储二进制数据。它可以包含各种类型的文件数据,如图像、音频文件、视频文件等。Blob 是一种强大的数据结构,允许开发者在浏览器中处理二进制数据。通过 Blob,可以轻松创建文件、处理媒体数据,以及实现文件上传和下载等功能。

2024-12-08 20:26:37 1252

原创 使用 useMemo 和 React.memo 优化 React 组件渲染

在 React 中,性能优化是一个重要的主题,特别是在复杂的组件树中。本文将演示如何在同一个父组件中使用 useMemo 和 React.memo 来优化子组件的渲染。

2024-12-01 22:53:36 690

原创 使用useCallback引发对闭包的理解

闭包是 JavaScript 中的重要概念,它指的是一个函数可以“记住”并访问其词法作用域,即使在这个函数的外部被执行。简单来说,闭包是由函数及其相关的环境组合而成的。保持一致性: 如果在回调函数内部使用了某个外部变量(例如 props 或 state),将这个变量放入依赖数组中可以确保你使用的是最新的值。这避免了闭包问题,即在回调函数中引用的变量是旧值。不必要的重新调用: 如果依赖数组中的变量发生变化,但回调函数并没有被调用(例如,函数没有被某个事件触发),那么不会造成逻辑错误。

2024-11-18 19:05:08 1100

原创 什么是JSX?

JSX就是JavaScript代码,要遵循JavaScript代码规则,当然,我们还可以把JSX看成增强型的HTML,因为它可以支持自定义标签等高级功能。

2024-11-17 22:28:31 1319 1

原创 React路由

用于获取 URL 路径中的参数。返回一个对象,其中包含当前路由路径中定义的动态参数。特点声明式导航编程式导航实现方式使用或组件使用或history灵活性相对固定,更加直观高度灵活,支持条件导航适用场景静态链接动态路由逻辑和条件导航状态管理自动处理活动状态需手动管理状态HashRouter:适合简单应用,易于配置,但在 SEO 和 URL 美观性方面存在限制。:适合复杂应用,支持现代特性,但需要额外的服务器配置以避免 404 错误。特点HashRouter。

2024-11-10 21:58:08 3294 2

原创 Ts基础总结

面向对象编程(OOP)中,接口(Interface)是一种定义类应该遵循的协议或约定的结构。接口指定了类所需实现的方法,但不提供其具体的实现。接口的作用在于提供一种方式,让不同的类可以以统一的方式进行交互。只定义方法: 接口定义了方法的签名(名称、参数和返回类型),但不包含方法的实现。多重继承: 一个类可以实现多个接口,允许更灵活的设计,避免了单继承的限制。契约: 接口可以被视为一个契约,表示实现该接口的类承诺实现接口中定义的所有方法。提高代码的可维护性: 使用接口可以使代码更易于维护和扩展。

2024-11-03 11:34:57 1960

原创 React 中使用 Redux Toolkit 状态管理

这里只是自己觉得这样定义会更好理解一些,实际并没有这样的概念在一个新的文件// 创建一个 slicename: 'counter', // 定义 slice 的名称initialState: { // 初始化状态count: 0, // 需要被全局维护的数据},reducers: { // 定义修改状态的方法// 增加计数},// 减少计数},// 重置计数},},});// 导出 action 对象// 导出 reducer 函数在这个例子中,

2024-11-02 10:21:33 830

原创 React 中组件通信的几种主要方式

多属性传递: 父组件可以传递多个属性给子组件。函数作为 props: 父组件可以将函数传递给子组件,子组件可以调用这个函数与父组件进行交互。默认值和类型检查: 可以通过和PropTypes来确保 props 的完整性和正确性。传递对象和数组: 可以将复杂的数据结构(如对象和数组)作为 props 传递。回调函数: 子组件通过调用父组件传递的回调函数来传递数据。事件数据传递: 子组件可以通过回调函数向父组件传递事件数据,如用户输入。多个参数: 子组件可以通过回调函数传递多个参数给父组件。

2024-10-27 22:17:41 1645

原创 Java和Ts构造函数的区别

java中子类在使用有参构造创建对象的时候不必要必须调用父类有参构造而js则必须用super()调用父类的有参构造,即使用不到也必须传递。

2024-10-24 22:16:09 530

原创 Vue3中ref和reactive的对比

用途: 用于创建基本数据类型或单一值的响应式引用。语法用途: 用于创建对象或数组的响应式状态。语法watch直接监听ref: 在组件内部,您可以直接监听ref对象,因为 Vue 的响应式系统会自动处理对这个对象的代理。Props 处理: 对于从父组件传递的ref,由于它会被解包成原始值,您需要使用 getter 函数来确保正确监听变化。

2024-10-20 19:25:10 945

原创 Vue3 实现 SSE 连接

SSE 是一种允许服务器向浏览器推送事件的技术。与 WebSocket 不同,SSE 是单向的:服务器可以向客户端发送数据,而客户端不能直接向服务器发送数据。SSE 适用于需要实时更新的应用,比如聊天应用、通知系统和实时数据监控。

2024-10-13 23:35:52 1543

原创 Vite多环境配置与打包:

开发命令(如 npm run dev)默认使用开发模式。构建命令(如 vite build)默认使用生产模式。这两者并不冲突。在开发过程中,你通常使用开发模式,而在构建生产版本时,Vite 则使用生产模式。你的项目默认是开发环境,通常是因为没有显式指定其他环境模式。你可以通过查看 package.json、vite.config.js 和环境变量文件来确认和修改环境配置。

2024-10-06 23:04:09 5300

原创 Python基础

使用print()函数输出信息。使用input()函数获取用户输入。输入的内容默认是字符串,必要时需要进行类型转换。分支结构:允许根据条件选择执行路径,常用的有ifelif和else。for 循环:用于遍历可迭代对象,执行固定次数。while 循环:根据条件执行代码,直到条件不再满足。字符串:用于表示文本数据,支持不可变操作。列表:有序可变集合,适合存储多个数据项。元组:有序不可变集合,适用于固定数据。集合:无序可变集合,元素唯一,支持集合运算。字典。

2024-09-30 10:13:57 1176

原创 理解Js执行上下文

执行上下文、变量对象、活动对象和作用域链是密切相关的概念。每次代码执行时,都会创建一个新的执行上下文,并形成一条作用域链来管理变量的查找。这些机制共同作用,使 JavaScript 能够有效地处理作用域和变量的生命周期。理解这些概念对于掌握 JavaScript 的行为和调试代码至关重要,特别是在处理异步操作和闭包时。

2024-09-29 22:57:19 820

原创 Js垃圾回收的两种方式

自 2008 年以来,主要浏览器(如 IE、Firefox、Opera、Chrome 和 Safari)都采用了标记清理策略或其变体,尽管它们在垃圾回收的频率上有所不同。理解这些垃圾回收策略可以帮助开发者更好地管理内存,提高应用性能,并减少内存泄漏的风险。

2024-09-29 22:12:23 1040

原创 Vue3.3新特性defineModel

在上面的例子中我们直接将defineModel的返回值使用v-model绑定到input输入框上面,无需定义 modelValue 属性和监听 update:modelValue 事件,代码更加简洁。defineModel的返回值是一个ref,我们可以在子组件中修改model变量的值,并且父组件中的inputValue变量的值也会同步更新,这样就可以实现双向绑定。是用于双向绑定的指令,通常用于将父组件的状态与子组件的内部状态进行同步。指令绑定到同一个变量,因为这会导致数据冲突和不确定的行为。

2024-09-22 19:16:27 1263

原创 JS执行机制(同步和异步)

JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。异步:在做这件事的同时,你还可以去处理其他事他们的本质区别:这条流水线上各个流程的执行顺序不同。

2024-09-22 18:46:53 1100

原创 Js中的pick函数

/ 使用 reduce 方法遍历 keys 数组// 检查当前属性名 key 是否存在于对象 obj 中// 如果存在,将该属性及其值添加到 result 对象中} // 返回当前的 result 对象,以便下一次迭代使用// 初始化累加器 result 为一个空对象}, {});

2024-09-15 22:45:49 1049

原创 JS中的script标签

浏览器在解析这个资源时,会向 src 属性指定的路径发送一个 GET 请求,以取得相应资源,假定是一个 JavaScript 文件。这个初始的请求不受浏览器同源策略限制,但返回并被执行的 JavaScript 则受限制。当然,这个请求仍然受父页面 HTTP/HTTPS 协议的限制。

2024-09-08 22:25:25 7013

原创 JavaScript 单线程防阻塞的原理

JavaScript 是一种单线程语言,这意味着它一次只能执行一个任务。这种设计可能会导致一些问题,比如当遇到耗时的操作时,整个程序可能会被阻塞。为了解决这个问题,JavaScript 使用了事件循环和回调函数的机制,实现了非阻塞式的异步操作。

2024-08-18 21:44:39 618 1

原创 计算机网络-编码与调制

一段待传输的比特流所以会出现不归零编码存在同步问题计算机网络中的数据传输不采用这类编码(不归零编码)由于人为或非人为的原因,代码在计算机或其他数字系统中形成、传送和运算过程中都有可能出现错误。于是人们在提高计算机本身的可靠性的同时,也创造了一些可靠性编码。它们令代码本身具有一种特征或能力,使得代码在形成中不容易出错,或代码在出错时容易被发现,甚至能查出出错的位置并予以纠正。格雷码就是一种可靠性编码。

2024-08-04 22:45:17 1065

原创 计算机网络的定义和分类

通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。MAN的一个重要用途是用作骨干网,通过它将位于同一城市内不同地点的主机、数据库,以及LAN等互相联接起来,这与WAN的作用有相似之处,但两者在实现方法与性能上有很大差别。网络可靠性高,一般通信子网中任意两个节点交换机之间,存在着两条或两条以上的通信路径,这样,当一条路径发生故障时,还可以通过另一条路径把信息送至节点交换机。适合用光纤,大大提高网络速度和抗干扰能力。

2024-07-28 20:40:33 1013

原创 计算机网络体系结构

用户接入因特网,要求用户的主机必须使用TCP/IP协议,当然,即使用户的网络不需要接入因特网,也可以使用TCP/IP协议,在用户主机的操作系统中,通常都带有符合TCP/IP体系结构标准的TCP/IP协议族,而用于网络互连的路由器中.也带有符合TCP/IP体系结构标准的TCP/IP协议族,在TCP/IP协议体系中包含有大量的协议,IP协议和TCP协议是其中两个非常重要的协议,因此用TCP和IP这两个协议来表示整个协议大家族,常称为TCP/IP协议族。从上往下:物理层,数据链路层,网络层,运输层,应用层。

2024-07-13 22:36:12 973

原创 Vue2阶段总结

vue就是一个js库,并且无依赖别的js库,直接引入一个js文件就可以使用,与传统JS和JQuery框架不同,Vue的渐进式框架表示开发者可以由简单组件写起,渐渐搭建出一个复杂的前端平台。组件化,MVVM,响应式,和生命周期。Vue一切是数据为核心,使用数据来驱动视图刷新,我们不建议去操作dom在 data() 函数中定义的属性会自动变成响应式属性。Vue.js 会在内部将这些属性转换成响应式的,以便跟踪属性的变化并更新相关的视图。

2024-05-31 19:10:19 994

原创 Vue组件 ElementUI 的引入

Element UI 是一个基于 Vue.js 的开源 UI 组件库,提供了丰富的可复用的 UI 组件,用于构建现代化的 Web 应用程序界面。响应式设计:Element UI 的组件都经过响应式设计,可以自适应不同的屏幕尺寸和设备类型,从而在不同的设备上提供一致的用户体验。主题定制:Element UI 支持自定义主题,你可以根据自己的需求定制组件的样式和颜色,以适应你的项目风格。是一个对象,它包含了当前行的数据和索引等信息,你可以根据需要使用这些信息来自定义列的内容。属性设置列的标题,使用。

2024-05-26 19:09:30 633

原创 Vuex简介

全局状态管理插件Vuex是一个专为Vue.js应用程序开发的状态管理模式. 它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,Vuex也集成到Vue的官方调试工具devtools extension,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。

2024-05-12 18:40:54 922

原创 Vue中使用mock模拟后端数据

在开发的时候,由于页面中的数据来自后端,后端接口又处于开发中,阻碍了前端开发,为了解决这个问题,需求下来后,前后端先约定好数据结构后,在按照约定好的数据结构进行开发,这样前端只需一个本地服务,模拟返回约定好的数据结构。这个数据模板语法的含义是:以初始值 10 作为基准,在每次被调用时递增 15。换句话说,每次调用该模板语法生成的数据,sellingPrice 属性的值会比上一次增加 15。

2024-05-05 21:19:27 2853

原创 Vue引入阿里妈妈iconfont图标

此外,index.html 中通过 标签引入了 Vue 应用程序的 JavaScript 文件(app.js),它包含了 Vue 组件和应用逻辑的代码。ESLint 是一个用于在 JavaScript 代码中进行静态代码分析和检查的工具,它可以帮助开发人员发现和修复潜在的问题、统一代码风格,并遵循预定义的规则和最佳实践。.eslintrc.js 文件用于配置 ESLint 的规则和选项。在 ESLint 的配置中,有两个重要的文件:.eslintignore 和 .eslintrc.js。

2024-05-05 20:33:40 1702 1

原创 canvas画布的使用

【代码】canvas画布的使用。

2024-03-15 18:08:51 582 1

空空如也

空空如也

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

TA关注的人

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