自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 字体渲染与行高的原理

你使用字体大小 ≠ 渲染高度:font-size 定义的是em方块,不是实际渲染高度行高控制总高度:line-height 控制整个文本行的垂直空间精确还原设计:手动设置行高可以精确匹配UI设计稿跨浏览器一致性:确保在不同浏览器中渲染一致/* 这是完全正确的实现方式 */.ui-text {/* 必要的,用于控制总高度 */字体设计是艺术,CSS布局是科学。需要通过CSS的精确控制来实现设计意图。

2025-11-20 14:16:25 804

原创 CSS:less语法与sass语法介绍

Sass (Syntactically Awesome Style Sheets) 是一种 CSS 预处理器,它扩展了 CSS 的功能,提供了变量、嵌套、混合、继承等特性。

2025-11-20 10:51:01 568

原创 Vue3与React 18写法差异

特性Vue 3React 18核心 APIrefreactiveuseStateuseReducer更新方式直接赋值.value(对于ref) 或直接修改对象 (对于reactive必须使用 setter 函数响应式原理基于 Proxy 的依赖收集在每次渲染中捕获状态,通过 setter 触发重新渲染<template>// 基本类型用 ref// 对象用 reactive</script>// 基本类型和对象都用 useState。

2025-11-18 10:42:32 773

原创 底层原理深入分析,箭头函数不能作为构造函数

综上所述,从底层原理来看,箭头函数的设计与普通构造函数所需的机制在函数内部状态管理、原型链构建、内存分配以及调用检测等多个关键方面存在本质差异,这些差异决定了箭头函数不能被用作构造函数。

2025-09-26 12:43:21 311

原创 SIMD.js与asm.js是什么?

它们共同的目标是:解决 JavaScript 在浏览器中执行计算密集型任务时性能不足的问题,让 Web 能够承载游戏、科学计算、多媒体处理等重型应用。在 asm.js 出现之前,人们认为用 JavaScript 写 3D 游戏、视频编码、CAD 软件等是天方夜谭。因为 JS 是动态类型、解释执行的语言,性能与 C/C++ 等编译型语言相差甚远。asm.js 的核心思想是: 通过一套严格的编写规则,让 JavaScript 代码的类型和行为在编译时(AOT) 就能被完全确定。这样 JS 引擎(如 Firefo

2025-09-25 21:20:12 839

原创 Array.from转化类数组

是 ES6 引入的一种现代、简洁且功能强大的方法,专门用于将类数组对象或可迭代对象转换为真正的数组。

2025-09-25 16:49:12 280

原创 JavaScript 的作用域

JavaScript 的作用域主要就是这些。:当前作用域 → 外层函数作用域 → 更外层…作用域之间不是孤立的,它们通过。

2025-09-23 19:47:03 608

原创 Fiber、协程和 Generator行为上的区别?

特性yieldnext实现层级语言引擎层。由 JS 规范定义,引擎原生支持。应用层。React 用纯 JavaScript 代码和数据结构模拟实现。中断/恢复原理冻结/解冻执行上下文。引擎魔法,效率高但不可见。手动记录链表遍历的指针。通过循环和返回“下一个节点”来模拟。状态完全保存在 Fiber 节点数据结构中。控制权协同式 (Cooperative)。函数通过yield主动让出控制权。调度式 (Preemptive)。由外部的调度器 (Scheduler)根据优先级和剩余时间强制中断。状态保存。

2025-09-23 15:32:19 660

原创 前端架构-CSR、SSR 和 SSG

缩写英文中文核心思想CSR客户端渲染服务器发送一个空的 HTML 壳和 JavaScript bundle,由浏览器下载并执行 JS来渲染内容。SSR服务端渲染服务器在每次请求时,动态生成并填充数据的完整 HTML 页面,然后发送给浏览器。SSG静态站点生成在项目构建时,就预先生成好完整的、带内容的 HTML 页面。服务器直接返回这些现成的文件。

2025-09-12 20:20:09 993

原创 浏览器缓存机制存储策略

浏览器缓存机制中的是三种不同层次的存储策略,它们在位置、速度、持久性和用途上有显著区别。

2025-08-17 14:41:07 843

原创 setTimeout、setInterval、requestAnimationFrame的使用以及区别

都是 JavaScript 中用于处理异步任务的函数,但它们在用途、执行机制和精度方面存在显著差异。

2025-07-18 15:39:47 572

原创 HTML5 离线存储

特性Application Cache (废弃)控制粒度声明式(manifest文件)编程式(JavaScript)更新机制手动修改 manifest文件内容变化自动更新请求拦截❌ 不支持✅ 完全控制网络请求后台同步❌ 不支持✅ 支持后台同步(Background Sync)缓存策略灵活性极低极高(可自定义逻辑)现代浏览器支持已废弃广泛支持💡现代 Web 离线存储应优先使用 Service Worker。

2025-07-13 10:52:52 532

原创 webpack基础与进阶

webpack是一个开源的javascript模块打包工具,其最核心的功能是解决模块之间的依赖,把各个模块按照制定的规则和顺序组织在一起,最终合并成一个js文件(有时会有多个)。这个过程叫模块打包。loader是webpack中的一个核心概念,我们可以将其理解为一个代码转换的工具。这里的input可能是工程源文件的字符串,也可能是一个loader转化后的结果,output则包括了转化后的代码、source-map和AST对象。loader可以是链式的。

2025-06-09 17:59:39 805

原创 什么是微前端?

微前端描述的是将应用程序进行垂直划分。每一部分的构建都是从数据库到用户界面,并交由一个专门的团队运行,不同团队的前端界面集成到客户的浏览器中后,就形成最终的页面。优化功能开发——一个团队拥有开发某功能必需的所有技能,不必在独立的前端和后端团队间相互协调。简化前端升级——每个团队拥有从数据库到前端完整的技术栈。团队可以自行决定是否升级或切换前端技术。更专注于客户——每个团队都直接向客户提供他们的功能。不存在纯粹的API团队或运维团队。

2025-06-04 19:25:34 864

原创 操作系统-期末看这篇就够了

中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得 CPU 暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行的过程。原语由若干条指令组成,用于完成某一特定功能的一段程序,具有不可分割性,即原语的执行必须是连续的,在执行过程中不允许被中断。执行,但由于资源有限,如cpu只有一个,进程的执行并不是一贯到底的,而是走走停停的,它以不可预知的速度向前推进。存储管理:(内存)内存的分配与回收,内存保护,地址映射,动态分区分配算法,虚拟内存等。

2024-12-21 17:02:59 1036

原创 Zustand状态管理

subscribe 函数允许组件绑定到 state-part 部分,而无需在更改时强制重新渲染。如果你想构造一个内部有多个 state-picks 的单个对象,类似于 redux 的 mapStateToProps,你可以使用。你可以在其中放置任何东西:基元、对象、函数。选择你的状态,组件将在更改时重新渲染。小心不要抹去你依赖的部分,比如 action。当你准备好时,只需调用 set,zustand 并不关心你的操作是否是异步的。您可以使用任何类型的存储来持久保存商店的数据。减少嵌套结构很烦人。

2024-11-25 17:02:25 428

原创 SWR:用于数据请求的React Hook库

使用 SWR,组件将会获得最新数据流。

2024-11-20 15:56:38 716

原创 nodejs学习

npm init可以生成package.json文件;//异步操作读取文件})console.log('这是一个最简单的中间件函数')//把流转关系,转交给下一个中间件或者路由next()})console.log('这是最简单的中间函数')next()})})})})监听req的data事件let str=''str+=chunk})})监听req的end事件let str=''str+=chunk})//str中存放的是完整的请求体数据})})

2024-11-16 21:25:32 914

原创 js中常用数组方法

添加一个或多个元素,并返回新数组的长度,改变原数组.(添加多个元素用逗号隔开)

2024-11-15 16:58:57 1053

原创 remix路由

目录中的任何 JavaScript 或 TypeScript 文件都将成为应用程序中的路由。请注意,在添加嵌套路由时,您通常希望添加索引路由,以便在用户直接访问父 URL 时,某些内容会在父 URL 的 outlet 内呈现。这使您可以将代码组织得更靠近使用它们的路由,而不是在其他文件夹中重复功能名称。通常,您的 URL 不是静态的,而是数据驱动的。之前的文件名与另一个路由文件名匹配,则它将自动成为匹配父路由的子路由。嵌套路由是将 URL 的段耦合到组件层次结构和数据的一般概念。的子路由,并在父路由的。

2024-11-12 11:57:00 558

原创 Remix全栈式框架

​ Remix 是一个全栈式 Web 框架,可让您专注于用户界面,并通过 Web 标准进行工作,以提供快速、流畅且有弹性的用户体验。人们会喜欢使用你的东西。

2024-11-12 11:21:50 839

原创 算法设计与分析

问题的解向量:一个问题的解向量可以构成一个n元组的形式,这个n元组称为问题的解向量;问题的解空间:问题的解是问题解空间的一个子集,解空间中满足所有约束条件的解称为可行解;解空间中所求解的目标函数的最大或最小的可行解称为最优解;解空间树:将回溯法的搜索空间看作是树形结构,也称解空间树或者状态树;回溯法的基本思想:在一棵含有全部问题解的状态空间树上进行深度优先搜索,从根节点出发搜索解空间树,解为叶子节点;

2024-06-08 16:03:54 1055

原创 python爬虫

allow_redirects:True/False是否让requests做重定向处理,默认是;params:字典形式,设置url后面的参数,比如?verify:True/False,是否进行HTTPS证书验证,默认是,需要自己设置证书地址;文章页URL形式:http://www.crazyant.net/2261.html。headers:设置user-agent,refer等请求头;data:字典或者字符串,一般用于post方法时提交数据;根域名:http://www.crazyant.net。

2024-05-27 16:02:36 663

原创 微信小程序云开发基础

【代码】微信小程序云开发基础。

2024-05-19 14:29:04 504 1

原创 健身管理系统

健身管理系统本项目包括三个方面:前台预约展示,后台管理系统,MySQL数据库存储;前台预约展示前台方面使用html+css+vue2+axios;<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

2024-05-17 16:31:15 1016 1

原创 node基础+后端开发

npm init可以生成package.json文件;//异步操作读取文件})console.log('这是一个最简单的中间件函数')//把流转关系,转交给下一个中间件或者路由next()})console.log('这是最简单的中间函数')next()})})})})监听req的data事件let str=''str+=chunk})})监听req的end事件let str=''str+=chunk})//str中存放的是完整的请求体数据})})

2024-05-15 19:39:45 974 5

原创 Vue学习笔记

通过redirect属性为某一路径重新指定另一路径;path: '/',},},State是驱动应用的数据源;View是将state映射到视图;Actions是在View上的输出导入的状态变化。

2024-05-15 19:25:04 441 1

空空如也

空空如也

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

TA关注的人

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