- 博客(39)
- 收藏
- 关注
原创 【React】副作用 setState执行流程 内置钩子(Effect Callback Reducer)React.memo
作用:这个回调函数不会在组件重新渲染时重新创建,导致子组件感知到 props 变化而重新渲染。包装的子组件会检查 props 是否变化,不变化的话直接使用缓存中的值不重新渲染,props 改变时才重新渲染。由于 reducer整合函数一般创建后不会改变,所以尽量写在组件函数外部,减少函数重新渲染时重新创建。–> 两种方法的原理都是把 setState 放到渲染函数执行后(非渲染阶段)作用:这个新的组件在父组件中使用,当父组件重新渲染时,经过。接收一个组件作为参数,返回一个包装过的新组件。
2025-04-10 17:02:02
300
原创 聊聊 CSS
我们可以使用熟悉的语言去开发客户端应用,比如 React Native、Uni-App + Vue。不是,40px 是字体的高度,但是字体设计时一般会有些字超出字体边框,所以浏览器会采取自适应策略适当增加元素的高以能包含字体,所以高度会稍大些。B/S 架构优点如此之多,可以抛弃 C/S 架构吗?必须用 C/S 的软件:大型专业应用(性能)、军工应用(安全)权重值比较规则:从左往右比,谁大谁胜出。内联样式 > ID > 类 > 标签 > 通配。那该元素的高是 40px 吗?权重值:格式为(a,b,c)
2025-04-08 20:54:30
244
原创 Git 协同开发的常用操作
提交你的修改到远程仓库的你的分支(默认远程仓库已经设置好你的分支 my-dev)不能直接 push,因为默认会 push 到 marster 分支中。项目上线时,marster 分支要合并其他分支的代码,然后发布。git pull 把最新版本的代码拉去下来合并后再 push。你修改的代码和最新版的代码的位置在同一个文件的同一区域。你去把总仓库的代码 fork 到你自己的账号仓库下。创建并切换到你的开发分支(my-dev)公司审核后同意你的仓库和总仓库合并请求。把最新的代码拉取下来。
2025-04-08 16:21:45
240
原创 深入理解浏览器的事件循环
因为 JS 一门单线程语言,他执行在渲染主线程中,当我们遇到一些任务需要长时间等待时,比如定时器,如果他是同步的话,必须等待计时器结束,然后执行定时器的回调之后才能继续执行后续的任务,这样会白白等待太多时间,因此渲染主进程会将异步任务丢给其他线程去处理(比如定时器会调用操作系统来辅助操作),当其他线程的异步任务执行完后,会将回调包装成任务放到消息队列的末尾,等待渲染主线程去调度。保证浏览器永不阻塞,最大程度保证单线程的流畅执行。
2025-04-03 22:16:59
416
原创 深入理解浏览器的渲染原理
HTML 解析过程遇到 JS 时:停止解析后续 HTML,转而下载 JS 并运行后,才继续 HTML 的解析。因为渲染进程(包含合成线程)是使用沙盒与其他硬件隔离开的,它提供了安全的策略,但是导致它不能去调用其他硬件,所以第八步在合成线程生成位图的指引信息后要交给 GPU 去调用显卡。HTML 字符串 → 解析 HTML → 样式计算 → 布局 → 分层 → 绘制 → 分块 → 光栅化 → 画 → 像素信息 → 最终图像。HTML 解析过程遇到 CSS 时:CSS 的下载和解析不会阻塞 HTML 的解析。
2025-04-01 22:20:42
728
原创 【Vitest】单元测试
由于我们不可能等待异步请求的返回结果来测试,这样会耗费太多事件,所以使用 mock 模拟。创建文件:example.test.ts。监控对象上的方法是否被调用。监控回调函数是否被调用。
2025-02-06 01:51:05
442
原创 【TypeScript】扩展:装饰器
(Parameter Decorators)是用来装饰类方法中的参数的装饰器。装饰器工厂不是装饰器,装饰器工厂的返回值是装饰器,装饰器工厂的作用主要是它接收的参数可以供给装饰器使用。答:静态属性是类本身的属性,而不是类的实例的属性。访问器装饰器的工作机制与普通方法装饰器相似,但它们专门作用于 getter 和 setter。先【从上到下】执行所有的装饰器工厂,再【从下到上】执行所有装饰器(包括装饰器工厂里的装饰器)装饰器,可以给实例添加一个属性,用于记录实例对象创建的时间,再添加方法读取时间。
2025-02-02 17:44:39
1074
原创 【TypeScript】进阶:类和接口
为现有的JavaScript代码提供类型信息,使得TypeScript能在使用这些模块时进行类型检查。抽象类:既可以包含抽象方法,又可以包含具体方法,一个类只能继承一个抽象类。描述数据类型,API响应格式,配置对象;抽象主要为派生类提供一个基础结构,要求派生类中必须对其基本实现;接口:只能描述结构,不能有任何实现的代码,一个类可以实现多个接口。允许我们在定义函数的时候,先不指定参数的类型,用泛型来表示。抽象类不可被实例化,其最大的意义就是可以被继承。只能定义结构,不能包含是实现。相同:都可以定义类的结构。
2025-02-02 17:43:43
558
原创 【TypeScript】基础:数据类型
为什么需要TypeScript?JavaScript的困扰不清楚的数据类型不会指明代码的逻辑漏洞访问不存在的属性低级的拼写错误Typescript会进行静态类型检查:在代码运行前对代码进行检查标红;将代码错误前置如何编译TypeScript?要将.ts编译成.js文件;需要配置TypeScript的编译环境tsc --init生成一个编译控制文件tsconfig.json会生成一个对应的js文件,一有变化就会更新;并生成一个配置文件tsconfig.json修改配置文件:取消注释。
2025-02-02 17:41:03
659
原创 【SeedLab】密码技术应用实验
Task1:使用不同的密码算法和加密模式加密;Task2:加密模式:ECBvs.CBC;Task3:错误传播–被破坏的密文;Task4:寻找密钥;Task5:生成消息摘要;Task6:哈希函数的输出特性;Task7:单向性与抗碰撞性
2025-01-20 15:28:16
888
原创 【CTFHub】REC-命令注入
1. 命令注入-无过滤;2. 命令注入-过滤cat;3. 命令注入-过滤空格;4. 命令注入-过滤目录分隔符;5. 命令注入-过滤运算符;6. 命令注入-综合过滤练习。
2025-01-14 18:59:46
500
原创 【数据库】三、SQL语言
1 概述;2 数据定义(DDL);3 数据操作(DML);4 数据控制(DCL);5 视图;6 索引;7 嵌入式SQL
2025-01-10 22:14:18
2031
原创 【机器学习】梯度下降
1. 梯度下降概念2. 梯度下降的技巧2.1 动态设置学习率2.2 Adagrad调整梯度2.3 随机梯度下降(SGD)2.4 特征缩放3. 梯度下降理论基础
2024-12-28 00:03:55
2010
原创 【机器学习】概述
1 定义一个模型 (Define a set of function);2 评估模型好坏 (Goodness of function);3 选择最佳函数 (Pick the best function)。
2024-12-27 19:07:29
431
原创 【机器学习】Transformer
Transformer:输入序列和输出序列的长度没有绝对的关系,输出序列长度由机器自己决定。使用自注意力机制来解决seq2seq问题
2024-12-25 18:32:54
511
原创 【基础篇】Vuex 集中式状态管理
Vuex是一种任意组件间通信的方式。专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对多个组件共享状态进行集中管理(读/写)什么时候用?i多个组件依赖同一个状态;来自不同组件的行为需要变更同一状态。
2024-12-09 23:24:21
841
原创 【SeedLab】伪随机数生成实验
Task 1:用错误的方式生成加密密钥Task 2:猜测密钥Task 3:测量内核的熵Task 4:从 /dev/random 中获取随机数Task 5:从 /dev/urandom 获取伪随机数
2024-12-08 16:56:36
974
原创 【头歌实验】Python数据库编程练习 ※
((1, ‘alice’, ‘女’, 21), (2, 'planet ', ‘男’, 20), (3, ‘cage’, ‘男’, 22)…((1, ‘alice’, ‘女’, 21), (2, 'planet ', ‘男’, 20), (3, ‘cage’, ‘男’, 22)):查看一条符合条件的数据,可以连续使用,查询的是上一个fetchone 的后面一条。((4, ‘zero’, ‘男’, 20),)((5, ‘mary’, ‘女’, 18),): 查询所有符合条件的数据。: 获取指定的条数数据。
2024-12-06 16:18:07
770
原创 【基础篇】Vue中的Ajax请求
Vuex 中的 AJAX 请求通常通过 actions 进行处理,actions 用于执行异步操作(如 API 请求),然后通过 commit 提交 mutations 更新应用状态。这样可以将业务逻辑与 UI 组件分离,确保代码更易维护和管理。
2024-11-29 20:43:23
1013
1
原创 【基础篇】Vue组件化编程
Vue 组件化编程将 UI 划分为独立、可复用的组件,每个组件包含自己的模板、逻辑和样式。通过组件化,可以提高代码的可维护性、可重用性和组织性。父组件通过 props 传递数据,子组件通过 events 或 v-model 与父组件通信。
2024-11-29 16:55:40
900
原创 【基础篇】Vue核心基础
Vue的特点:采用组件化模式,提高代码复用率,让代码更好维护声明式编码,程序员不用直接操作DOM使用虚拟DOM+Diff算法,尽量复用DOM结点使用下载源代码vue.js,在项目html中引入配置浏览器开发者工具阻止vue在启动时显示生产提示自定义指令函数中**this是window**他要用到的属性已经通过指令后面的"值"传过去了,通过可取到//第一个参数:标签实例 第二个参数:绑定的标签对象。
2024-11-29 01:29:49
945
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人