自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【回顾React的一些小细节】render里不可包含的东西

如果 render 抛错会破坏整棵组件树(除非有 ErrorBoundary)。: render 不能是异步函数,返回值必须是 React 元素或。: 这些在每次渲染时重复执行会造成 UX/状态错乱。: 如网络请求、订阅、定时器、I/O、路由跳转等。)会使子组件收到不同引用,触发不必要重渲染。: CPU 密集型操作会阻塞渲染导致卡顿。: 直接或间接在 render 里调用。: 在渲染每次都新建匿名函数或对象(如。会立即触发新渲染,容易导致无限循环。(或函数组件的渲染路径)中。

2025-12-18 11:16:24 357

原创 Travel uni-app 项目说明

架构清晰:入口、路由、接口、组件划分合理。体验良好:瀑布流、懒加载、地图、评分等细节完备。工程化:网络层、Mock、条件编译提升维护与扩展能力。适合作为旅游行业模板或 uni-app 技术实践展示。

2025-11-13 20:53:06 1058

原创 医疗陪诊系统 - 项目说明

医疗陪诊管理系统是基于Vue3+Vite构建的后台系统,采用Element Plus作为UI框架。系统实现了动态路由、权限管理、数据可视化等核心功能,具有以下技术亮点:1)支持路由持久化和动态路由恢复;2)通过Vuex实现状态持久化管理;3)采用递归组件设计无限层级菜单;4)封装Axios实现统一请求和错误处理;5)集成ECharts实现响应式数据可视化。项目采用模块化架构,包含用户认证、权限管理、订单管理等业务模块,通过Tab标签页和路由守卫提升用户体验。系统特别注重状态持久化和组件复用,确保刷新后状态不

2025-11-13 13:38:59 1049

原创 【前端 -- javascript】遍历对象误获取原型链上属性

在 JavaScript 中,当我们遍历对象或判断属性是否存在时,如果不注意区分“对象自身属性”和“原型链上的继承属性”,可能会导致意外结果——这就是需要担心“遇到原型链上的属性”的核心原因。

2025-11-12 10:24:40 273

原创 【 前端 -- css 】浮动元素导致父容器高度塌陷如何解决

摘要:CSS中解决浮动元素导致父容器高度塌陷的三种方案:1) 父元素设置overflow:hidden(触发BFC,简单但会截断溢出内容);2) 新增空div并设置clear:both(兼容性好但违反语义化);3) 推荐的双伪元素法(无冗余DOM,兼容性佳,可同时解决高度塌陷和margin溢出问题)。最佳实践是将双伪元素法封装为.clearfix工具类,通过添加伪元素和清除浮动实现,兼顾语义化和兼容性。三种方法各有利弊,可根据具体需求选择。

2025-11-11 21:44:21 744

原创 【Three.js--manual script】4.光照

先调整相机的设置在基础场景下,移动相机位置添加一个 OrbitControls。OrbitControls 让我们可以围绕某一个点旋转控制相机。OrbitControls 是 three.js 的可选模块,所以我们首先需要引入这个模块创建 OrbitControls 时传入两个参数,一个是要控制的相机对象,第二个是检测事件的 DOM 元素将 OrbitControls 的观察点设置为 (0, 5, 0) 的位置,设置完调用 controls.update真正更新观察点位置创建一些东西来打光。

2025-11-07 19:28:30 430

原创 【算法】求二叉树的层序遍历

摘要:本文介绍了一种使用递归方法实现二叉树层次遍历的算法。通过前序遍历的方式,在访问每个节点时根据当前层级将节点值存入对应的二维数组层级中。当遇到新的层级时动态扩展结果数组,保证了节点值按照层次顺序存储。该算法同样适用于中序和后序遍历,因为左节点总是先于右节点被访问,从而保持了层次遍历的正确顺序。时间复杂度为O(n),空间复杂度为O(n)。

2025-11-07 18:58:45 115

原创 【Three.js--manual script】3.纹理

本文介绍了Three.js中纹理(Texture)的使用方法。主要内容包括:通过TextureLoader加载图像纹理并应用于材质;使用LoadingManager管理多个纹理的异步加载;介绍了纹理重复(wrap)、偏移(offset)和旋转(rotation)的设置方式;最后展示了如何通过lil-gui库实现纹理参数的实时调整。重点讲解了纹理坐标、纹理图集的概念,以及修改纹理参数后需要通过设置needsUpdate来更新纹理的特性。

2025-11-06 11:36:46 143

原创 【Three.js--manual script】 2.RWD

最显而易见的是"和canvas的显示尺寸一样"。renderer.setSize默认会设置canvas的CSS尺寸但这并不是我们想要的。一个是canvas在页面上的显示尺寸, 是我们用CSS来设置的。另一个尺寸是canvas本身像素的数量。调整画布大小是canvas规范的一个有趣部分,如果它已经是我们想要的大小,最好不要设置相同的大小.我们写一个函数来检查渲染器的canvas尺寸是不是和canvas的显示尺寸不一样 如果不一样就设置它。然后我们让id=c的元素的尺寸是容器的100%这里是body标签。

2025-10-29 17:30:54 538

原创 【Three.js--manual script】 1.basic

其次有一个场景图 它是一个树状结构,由很多对象组成,比如图中包含了一个场景(Scene)对象 ,多个网格(Mesh)对象,光源(Light)对象,群组(Group),三维物体(Object3D),和摄像机(Camera)对象。网格(Mesh)对象可以理解为用一种特定的材质(Material)来绘制的一个特定的几何体(Geometry)。你传入一个场景(Scene)和一个摄像机(Camera)到渲染器(Renderer)中,然后它会将摄像机视椎体中的三维场景渲染成一个二维图片显示在画布上。

2025-10-29 14:59:28 551

原创 计算机操作系统--进程与线程的关系

核心定义操作系统资源分配的基本单位(是程序的一次执行过程)操作系统CPU调度(任务调度)的最小单位(进程内的执行单元,不能独立存在)核心区别对比维度进程(Process)线程(Thread)资源分配角色资源分配基本单位(有独立内存/资源)不分配资源(共享进程的内存/资源)CPU调度角色不参与调度(调度的是进程内线程)调度最小单位(CPU直接分配时间片)内存空间独立(进程间内存不共享)共享(同一进程内线程共享代码/数据区)创建/切换开销大(需分配/回收资源)

2025-10-09 12:00:53 498

原创 计算机操作系统--进程:共享内存和管道的差异

共享内存和管道是两种进程间通信(IPC)方式,各有特点。共享内存通过直接映射物理内存实现高速通信,适合大数据量、高频传输场景,但需手动同步;管道基于内核缓冲实现,自带简单同步机制,操作简便但性能较低,适合少量数据传输。共享内存支持任意进程双向通信,而匿名管道仅限有亲缘关系的进程。选择时需根据数据量、通信频率和进程关系等综合考量:高频大数据用共享内存,简单命令交互用管道,无亲缘关系进程通信优先共享内存。

2025-10-04 20:05:25 268

原创 Nodejs--如何获取前端请求

我们要注意的是,require不是直接获取前端请求,而是用来加载其它js模块当我们处理前端请求时,要先引入http模块或者express等模块require它的核心作用就是,用于导入其他 JavaScript 模块(如内置模块、第三方模块或自定义模块)

2025-10-01 17:35:30 251

原创 Vuex的单向数据流模式:State,Getter,Mutation,Action,Module

Vuex的核心概念包括:State存储应用级共享数据;Getter用于数据过滤和格式化;Mutation是修改State的唯一同步方式;Action处理异步操作并通过Mutation间接修改State;Module将复杂Store拆分为模块。State通过store.state或mapState访问,Getter类似computed属性,Mutation通过commit调用,Action通过dispatch触发。Module通过命名空间组织代码结构,避免命名冲突。这些概念共同构成了Vue的状态管理模式,实现

2025-09-28 15:59:54 225

原创 Vue中的路由细节

前端路由通过URL变化实现无刷新组件切换,主要分为Hash和History两种模式。Hash模式利用URL中的#标识路由,监听hashchange事件;History模式使用HTML5 API,监听popstate事件。核心是维护路由-组件映射表,URL变化时匹配并渲染对应组件到<router-view>。实现包括路由配置、跳转方式(声明式/编程式)、嵌套路由、路由守卫和懒加载。History模式需服务器配置支持,将所有请求重定向到index.html。与后端路由不同,前端路由适合SPA应用,由

2025-09-23 22:39:53 519

原创 Vue3中的computed属性

Vue 3 计算属性(computed)的基本用法总结:通过computed()创建响应式属性,默认只读,可通过get/set实现可写计算属性。与methods相比,计算属性具有缓存机制,适合复杂逻辑的复用。在组件中,计算属性可直接在模板使用,自动追踪依赖并更新。示例展示了基本计算、可写计算属性以及优化性能的缓存特性。

2025-09-23 22:10:07 262

原创 理解CSS中的100%和100vh

height:100%和height:100vh的主要区别在于:前者基于父元素高度且需要显式定义,后者直接参照视口高度。100%在父元素无高度时会失效,而100vh不受影响但移动端可能包含地址栏导致显示异常。100%适用于嵌套布局,100vh更适合全屏场景。移动端浏览器对vh单位的实现存在兼容性问题,使用时需注意。

2025-09-21 20:48:44 314

原创 Vue3中对比ref,reactive,shallowRef,shallowReactive

Vue 提供了四种响应式 API:ref 和 reactive 实现深层响应,适用于基本类型或复杂嵌套对象;shallowRef 和 shallowReactive 仅实现浅层响应,适用于性能敏感场景或简单数据结构。深层响应式会递归追踪所有属性变化,而浅层响应式仅监听顶层属性变化,需手动处理嵌套数据更新。根据数据类型和性能需求选择合适的 API:ref/reactive 用于需要深度监听的数据,shallowRef/shallowReactive 用于大型对象或仅需监听顶层变化的场景。

2025-09-18 16:39:44 483 1

原创 数学建模--Ackley函数

【代码】数学建模--Ackley函数。

2025-08-29 14:22:59 402

原创 数学建模--粒子群算法(鸟群捕食,蚁群觅食)及Py代码

粒子群算法(PSO)是一种群体智能优化算法,模拟鸟群觅食行为。算法将每个解表示为粒子,通过个体最优(pbest)和群体最优(gbest)引导搜索,公式为v_i = w*v_i + c1*r1*(pbest_i - x_i) + c2*r2*(gbest - x_i)。Python实现包含初始化、速度位置更新、边界处理等核心步骤。关键参数包括惯性权重w(0.4-0.9)、学习因子c1/c2(约2.0)和粒子数量(20-100)。算法通过迭代逐步逼近最优解,适用于连续优化问题。

2025-08-28 12:47:17 478

原创 Vue中的props方式

Vue 中的 props 是父组件向子组件传递数据的机制。子组件需要声明接收的 props,父组件通过属性方式传递数据。props 可以指定类型、默认值和验证规则,确保数据规范性。需要注意的是,props 遵循单向数据流原则,子组件不能直接修改,需要通过 $emit 通知父组件变更。props 实现了父子组件间的数据通信,子组件声明"要什么",父组件"给什么"。

2025-08-26 22:24:43 371

原创 Vue中的scoped属性

Vue中的scoped属性可以让样式仅作用于当前组件,避免全局污染。原理是通过自动添加唯一属性选择器(如data-v-xxxxxx)实现样式隔离。若需修改子组件样式,可使用::v-deep穿透。示例展示了无scoped时样式全局生效,有scoped时仅当前组件生效的区别,编译后会为元素和样式添加匹配属性以确保局部作用。

2025-08-26 22:19:34 322

原创 用蒙特卡洛法求解三门问题和Π

摘要: 本文通过两个概率实验验证经典理论。三门问题模拟显示:换门策略的中奖概率(2/3)是不换门(1/3)的两倍,与数学推导一致。蒙特卡洛法通过随机撒点估算π值,当采样100,000点时,结果接近3.14,并可视化呈现圆内外点分布。两者均通过Python实现大数据量模拟(百万级/十万级),用统计方法验证理论概率,体现计算机在概率验证中的高效性。实验代码包含关键步骤注释,结果与数学结论高度吻合。

2025-08-25 18:02:25 378

原创 数学建模--灰色关联分析法及Py代码

灰色关联分析法是一种处理小样本、信息不完全系统的分析方法。其核心是通过比较序列曲线相似度来衡量因素间关联程度,无需大量数据或特定分布要求。主要步骤包括:确定参考序列和比较序列,进行数据预处理(初值化、均值化或区间化),计算关联系数和关联度,最后排序分析。关联度越高,因素对系统主行为影响越显著。该方法适用于不确定系统分析,特别适合解决"部分信息已知"的灰色系统问题。文末附有Python实现代码示例,展示了具体计算过程。

2025-08-25 12:49:40 681

原创 数学建模--模糊综合评价法

它针对评价过程中存在的模糊性(如 “好”“较好”“差” 等模糊概念),通过建立模糊集合,将定性评价转化为定量评价,从而对具有多种属性的评价对象做出全面、合理的评价。承认评价过程中的不确定性和模糊性,通过构建隶属函数来描述评价指标与评价等级之间的模糊关系,再结合各指标的权重,最终确定评价对象所属的评价等级,综合得分。方法灵活,可根据不同的评价对象和评价需求选择合适的隶属函数和合成算子。模糊评价矩阵是描述各评价因素对各评价等级的隶属程度的矩阵,记为。” 表示模糊合成算子。,确定评价对象的最终评价等级。

2025-08-24 20:22:24 1178

原创 数学建模--熵权法

摘要:熵权法是一种基于数据变异程度的客观赋权方法,通过计算指标熵值反映其信息量大小。实施步骤包括:数据标准化(正向化与归一化)、计算熵值和差异系数、确定权重。Python实现展示了具体计算过程,适用于绩效评估、方案选优等需要客观权重的场景。该方法强调指标变异程度与权重的关系,变异越大权重越高,反之则低。

2025-08-24 18:04:22 717

原创 数学建模论文注意点

建模特点(模型优点,建模思想和方法,算法特点,结果检验,灵敏度分析,模型检验)5.模型建立:论证严密,说明计算方法或者算法的原理思想依据步骤。数值结果表示:精心设计表格,可能的话采用图形图表。主要结果(数值结果,结论,回答问题的全部结论)不正确不合理时分析原因对算法或模型进行修正改进。基本模型=>简化模型=>模型有效实用。主要数据结果应在正文中列出,不怕重复。6.结果的分析,模型检验及模型修正。采用现有软件说明理由,软件名称。结果的表示:便于比较分析。

2025-08-22 14:34:55 242

原创 数学建模--Topsis(Python)

假设有 3 个方案,每个方案有 4 个评价指标,其中前 2 个为效益型指标,后 2 个为成本型指标。

2025-08-22 13:08:18 387

原创 数学建模--Topsis

它通过构建评价问题的正理想解和负理想解,计算各方案与这两个理想解的距离,进而根据相对贴近度对方案进行排序,以此选出最优方案。正理想解是在各属性上都达到最好水平的虚拟方案,负理想解则是在各属性上都处于最差水平的虚拟方案。通过衡量各实际方案与这两个理想解的接近程度,来判断方案的优劣。根据各评价指标的重要程度,赋予相应的权重$w_j)((j = 1,2,\cdots,n$,且满足。正理想解(V^+):每个指标取加权标准化矩阵中该指标的最大值,即。负理想解(V^-):每个指标取加权标准化矩阵中该指标的最小值,即。

2025-08-22 12:43:29 884

原创 Vue中的methods 和 computed

摘要: methods和computed是Vue中处理数据逻辑的两种方式,核心区别在于执行机制和缓存。methods为普通函数,需主动调用且无缓存,适合事件处理和动态计算;computed则是依赖数据的衍生值,自动更新且缓存结果,适合数据转换和性能优化场景。关键差异包括:methods需加括号调用,每次触发重新执行;computed依赖变化时自动计算,多次访问返回缓存。选择原则:需要动作(如点击事件)用methods,需要结果(如计算总和)用computed。(149字)

2025-08-22 12:27:33 332

原创 Vue的生命周期

周期过程中,自动运行的函数称为生命周期钩子=>让开发者可以在特定阶段运行自己的代码。更新阶段:数据修改,更新视图,相对于前两步,其执行多次。创建:响应式数据=>发送初始化渲染请求。挂载阶段:渲染模板=>操作DOM。Vue生命周期函数(钩子函数)new Vue()创建。

2025-08-21 21:47:33 226

原创 Git的初步学习

如果刚git commit# 回退到上一次提交(HEAD~1 表示上一个版本,~2 表示上两个,以此类推) git reset --soft HEAD~1效果:最后一次提交被“删除”,但修改内容仍在暂存区(可直接git commit重新提交)。

2025-08-19 20:48:16 1077

原创 Javascript中的reduce使用方法

reduce实现求和、求积、分组、过滤等多种功能。

2025-08-18 14:40:41 276

原创 lable中对于for标签的理解

摘要:for属性通过匹配表单元素的id值建立<label>与表单控件的逻辑关联,实现点击标签聚焦对应控件的功能。相比嵌套方式,for属性允许标签和控件分离布局,提供更灵活的结构。使用时需确保for值与目标元素id完全一致,且一个<label>只能关联一个控件。标准用法推荐优先采用for属性而非嵌套方式,尤其适用于复杂界面布局。

2025-07-30 16:19:00 403

原创 HTTP协议之请求报文与响应报文

HTTP报文分为请求报文和响应报文。请求报文包含请求行(方法、URL、协议版本)、请求头(元数据)和请求体(可选数据);响应报文包含状态行(协议版本、状态码)、响应头(元数据)和响应体(返回数据)。两种报文都通过空行分隔头部和主体,Content-Type指定数据类型,状态码表示请求结果。常见请求方法有GET/POST,状态码2xx表示成功,4xx/5xx分别表示客户端/服务器错误。

2025-07-30 15:54:41 1678

原创 HTTP响应状态码

HTTP状态码分为1xx(信息性)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)五大类。1xx表示请求已被接收继续处理;2xx表示请求成功处理;3xx表示需要重定向操作;4xx表示客户端请求错误;5xx表示服务器处理错误。常见状态码如200(成功)、301/302(重定向)、404(未找到)、500(服务器内部错误)等。状态码帮助开发者快速判断请求结果,前端根据状态码执行不同逻辑,后端应返回精准状态码定位问题。调试时可利用浏览器开发者工具查看状态码辅助问题排查。

2025-07-30 14:36:08 830

原创 Javascript中的instanceof

instanceof是JavaScript中用于检测对象与构造函数关系的运算符,通过检查对象是否在构造函数的原型链上来返回布尔值。其主要用法包括检测对象实例、内置对象类型及继承关系,但对基本数据类型无效。其工作原理是沿原型链查找构造函数原型,可通过模拟实现理解。与constructor相比,instanceof更可靠但存在原型修改失效和跨窗口检测问题。使用时需注意基本类型检测、原型修改及跨窗口引用限制。

2025-07-27 15:59:07 470

原创 JavaScript里的string

本文总结了JavaScript字符串的核心知识点,包括创建方式(字面量和构造函数)、不可变性等特性,以及常用操作方法(查找、截取、转换等)。特别介绍了ES6模板字符串的多行文本、变量嵌入和表达式计算功能,并说明了字符串与数组的相互转换方法。文章通过代码示例展示了字符串的索引访问、长度获取以及replace、split等方法的实际应用,为处理字符串操作提供了实用参考。

2025-07-26 15:44:06 406

原创 JavaScript里的reduce

JavaScript 的 reduce() 方法是一个强大的数组处理工具,通过遍历数组元素并累积计算最终返回单个值。其语法包含回调函数(接收累计值、当前元素等参数)和可选的初始值。常见用法包括数组求和/求积、统计元素频率、数组去重和二维数组扁平化。使用时需注意:空数组必须提供初始值,回调函数必须返回累计值,否则会导致错误。reduce() 功能全面,甚至可以模拟 map() 和 filter() 的功能,但应根据场景选择合适的数组方法。

2025-07-26 15:32:12 288

原创 JavaScript里的Object

摘要: Object 是 JavaScript 中所有对象的基类,提供创建对象的方法和操作对象的工具。通过构造函数 new Object() 或字面量 {} 创建对象。静态方法如 Object.keys() 获取属性名数组,Object.assign() 合并对象,Object.defineProperty() 定义属性特性。实例方法包括 toString() 返回字符串表示,hasOwnProperty() 检查自身属性,valueOf() 返回原始值。这些方法为对象操作提供了基础支持,适用于属性遍历、拷

2025-07-26 15:09:32 338

空空如也

空空如也

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

TA关注的人

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