- 博客(23)
- 收藏
- 关注
原创 子传父的核心应用场景(vue3)
子组件是“执行者”(负责UI渲染和用户交互),父组件是“决策者”(负责业务逻辑、数据存储、全局状态管理)。当子组件发生了“自己处理不了”的事件或数据变化时,就需要通过$emit(Vue)、props回调(React)等方式“上报”给父组件,让父组件处理。父传子是“给数据”,子传父是“报事件”。
2025-11-22 21:02:03
1061
2
原创 使用uniapp——实现微信小程序的拖拽排序(vue3+ts)
本文介绍了微信小程序中实现列表排序的两种方案:1)通过触摸事件(touchstart/touchmove/touchend)实现拖拽排序,计算触摸位移判断是否交换元素;2)利用上下箭头按钮精确调整位置。方案采用数据交换而非DOM操作,解决了小程序无DOM元素的限制。关键实现包括:记录触摸位置、判断移动方向、交换数组元素,并通过catchtouchmove防止页面滚动。提供了完整的代码示例,包含拖拽交互、按钮控制及数据交换逻辑。
2025-10-26 16:32:33
905
2
原创 http缓存详解
本文系统介绍了HTTP缓存机制,重点解析了强缓存和协商缓存的原理与实现。强缓存通过Cache-Control/Expires控制资源有效期,浏览器直接使用未过期的本地资源;协商缓存则通过ETag/Last-Modified与服务器验证资源变更,返回304或更新资源。文章详细对比了各缓存策略的优劣,梳理了缓存校验的完整流程,并深入源码分析了资源新鲜度的计算逻辑。缓存机制能有效减少请求次数、加快加载速度,是Web性能优化的重要技术。
2025-10-19 15:21:01
1070
原创 vue3和uniapp的生命周期
应用从后台切前台、页面从隐藏到显示时(包括首次加载)。:子组件抛出错误时(包括生命周期、事件回调等)。:小程序 / 应用首次启动时(全局只触发一次)。:组件渲染过程中,跟踪到响应式数据被使用时。:页面首次创建并加载到页面栈时(仅一次)。:页面首次渲染完成(类似 Vue 的。:响应式数据变化导致组件重新渲染时。:应用切后台、页面跳转至其他页面时。:用户下拉页面触发刷新(需在。:页面从页面栈中移除(如。中配置距离底部的阈值)。缓存的组件重新显示时。:页面滚动至底部(可在。
2025-10-09 20:18:12
1225
原创 跨域及其解决方法
它是浏览器基于同源策略,对不同源的页面 / 脚本未经允许相互访问数据的一个安全限制。js发送一个请求,浏览器先接收,并判断请求类型如果是简单请求,则直接发送服务器收到请求做出响应浏览器进行CORS校验,检查是否跨域如果不是简单请求,则先发送预检请求预检通过,则浏览器发送真实请求,服务端返回响应,浏览器再次做CORS校验,检查是否跨域预检不通过,则会引起跨域相关问题,发生跨域报错。GETPOSTHEAD浏览器默认的请求头或手动添加的安全头(如DNTRange等)
2025-09-21 15:18:00
695
原创 3分钟快速入门WebSocket
WebSocket是一种基于TCP的全双工通信协议,支持服务端和客户端实时双向通信。与HTTP协议相比,HTTP是半双工协议,只能通过"请求-响应"模式传输数据,而WebSocket连接建立后双方可随时通信。WebSocket通过特殊HTTP请求实现协议升级,包含Upgrade、Connection等关键字段,服务端返回101状态码确认协议切换。文章还提供了WebSocket的Node.js实现案例,包括服务端和客户端代码,演示了实时数据推送功能。
2025-09-06 17:24:28
693
1
原创 interface和type的区别
请求参数类型多变,比较灵活,也可用type实现类型联合。用于获取对象类型的所有键名组成的联合类型。而响应数据结构是固定的。
2025-08-18 08:43:03
461
7
原创 js防抖和节流
防抖和节流是优化高频触发事件的两种技术。防抖通过延迟执行函数,在连续触发时只执行最后一次(如输入框搜索),而节流则保证函数在指定时间间隔内至少执行一次(如滚动事件)。两者都利用闭包保存状态,通过清除或判断定时器/时间戳来控制函数执行频率。防抖适用于"最终状态"场景,节流适合"持续过程"场景,都能有效减少不必要的函数调用,提升性能体验。关键区别在于:防抖重置计时,节流固定间隔执行。
2025-07-18 18:33:51
508
6
原创 react项目环境搭建流程
创建router/index.js ,引入组件,配置路由,并导出router实例。CRA 已集成了 Webpack、Babel、TypeScript 等工具。创建axios实例,配置baseURL,请求拦截器,相应拦截器。在utils/index.js中,同意导出request。准备一个json文件 server/data.json。通过@代替src,方便开发过程中的路径查找访问。2. 联想提示配置,修改vscode配置。创建utils/request.js文件。1. 创建store子模块。
2025-06-15 18:28:33
960
6
原创 js异步编程的方式
在单线程环境中,同步操作按照代码顺序依次执行,遇到耗时任务时会阻塞程序,直到任务完成。异步操作则允许耗时任务在后台执行,避免阻塞主线程,提升程序响应速度。JavaScript中常见的异步操作包括定时器、网络请求和事件监听。异步编程的实现方式主要有回调函数、Promise和async/await。回调函数简单但容易导致“回调地狱”,Promise通过链式调用和错误捕获解决了这一问题,而async/await则进一步简化了异步代码的编写,使其更接近同步代码的结构。异步操作在处理耗时任务(如网络请求)时尤为重要,
2025-05-11 18:33:14
1047
原创 vue3对比vue2的性能提升
在页面重新渲染时,通过对比新旧虚拟DOM节点树,将那些变化的部分更新到真实的DOM上,在渲染时从而实现数据的更新。vue2中,采用的是首尾交替对比,处理乱序节点时,需要多次遍历,效率很低,而且需要遍历所有节点,遍历节点的所有属性。vue3中,则采用最长递增子序列算法(LIS),对于顺序变化的节点,仅移动必要的节点,减少DOM操作次数,而且只会diff那些动态节点,不会diff所有节点,这就减少了diff次数,提高了效率。vue3与vue2相比,它是如何性能提升的呢?
2025-04-23 22:43:13
1006
原创 git教程(Mac)超详细
集中式只有一个中央服务器存储所有版本,只能在中央服务器上下载最新版本,添加或修改一些内容,然后将修改过后的版本上传到中央服务器。优点:使用简单缺点:如果中央服务器出现故障或者网络连接出现问题,那么所有人都无法工作。每个人的电脑上都有一个完整的版本库,可以在本地进行修改,不需要考虑其他问题,与中央服务器互不影响,当我们需要把自己的修改内容分享给其他人的时候,只需要将仓库同步一下就可以了。分支是 Git 中非常重要的一个概念。
2024-12-08 16:59:20
7409
原创 JavaScript与JQuery的区别(超详细)
由于jQuery是一个库,它本身有一定的代码体积,并且在封装各种功能时会存在一些额外的抽象层和内部逻辑处理,相对来说在性能上可能会稍逊于精心优化过的原生JavaScript代码,尤其是在处理大量数据或者频繁操作DOM的极端情况下。虽然现代浏览器对JavaScript标准的支持已经比较完善,但由于不同浏览器在对一些JavaScript特性(尤其是早期版本)的实现上存在差异,开发者在编写复杂的JavaScript应用时,往往需要编写额外的代码来处理这些兼容性问题,比如针对IE浏览器的一些特殊情况进行适配。
2024-11-25 11:20:33
2489
原创 canvas实现小球拖动
1、用canvas绘制一个小球2、判断鼠标的位置是否在小球上(坐标已经转换成相对canvas的坐标)3、如果在,就开启一个mousemove事件,重新根据鼠标的位置来绘制小球4、如果松开鼠标,就添加一个mouseup事件,将mousemove很本身的mouseup事件移除。
2024-10-06 20:13:46
508
原创 简易计划清单(Html+Css+JS)
添加计划、右键删除计划、点击事项出现侧边栏、侧边栏能给事项添加提醒时间、给事项添加重要程度并根据重要程度绘制到四象限中、刷新页面后提醒时间不消失、刷新页面重要程度不消失、未完成和已完成事项的渲染、番茄钟倒计......
2024-08-25 14:29:41
745
原创 学生管理系统(javaFX+mysql)(fxml)
本篇文章是关于javafx和mysql实现的一个简易的学生管理系统。需要源码私信作者即可免费获取辅助软件:Scene Builder。
2024-08-05 16:24:48
976
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅