自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTML 语义化

用正确的标签做正确的事情。

2024-08-21 23:12:17 248

原创 src 和 href 的区别

src 属性的主要作用是将某个资源嵌入到当前元素中,并替换当前元素的内容。href 属性创建一个链接,建立了当前页面与目标资源之间的关联,不会将目标资源直接嵌入到当前页面中。

2024-08-21 21:11:17 363

原创 框架设计的核心要素

而 ESM 具有静态分析特性,可以在编译时确定哪些代码被使用,哪些代码可以安全地移除,ESM 的这个特性使得这种分析和进一步的优化成为可能。“特性开关”指的是框架设计中允许开发者关闭不需要的功能的机制。如果是生产环境,输出警告信息的代码就是 dead code,在构建资源的时候就会被移除,这样就能实现 [在开发环境中为开发者提供友好的警告信息的同时,又不会增加生产环境代码的体积] 的目的。而通常产生副作用的代码都是模块内函数的顶级调用,所以打 /*#__PURE__*/ 注释这件事不会造成很大的心智负担。

2024-08-15 23:30:48 931

原创 权衡的艺术

当我们对页面做出改变时,Vue 首先在虚拟 DOM上 进行操作,而不是直接修改真实 DOM,这样,操作的开销就会小很多。可以把虚拟 DOM 工作流程简单理解为像是在草稿纸上修改内容一样,一通操作后再把确定下来的结果高效地应用到真实 DOM 中,减少了重绘和重排。声明式代码的可维护性更强。视图层框架通常分为命令式和声明式,命令式的代码描述的是“做事的过程”,声明式的更加关注结果。为 0 时,这两个范式的性能相同,但是声明式的性能无法超越命令式的性能。Vue.js 内部实现是命令式的,而暴露给用户的是声明式。

2024-08-15 20:04:40 708

原创 《Type Challenges》7 - 对象属性只读

【代码】《Type Challenges》7 - 对象属性只读。

2024-05-13 22:33:43 283 1

原创 《Type Challenges》4 - 实现 Pick

【代码】《Type Challenges》4 - 实现 Pick。

2024-05-13 22:05:52 453 1

原创 VitePress报错:Error: No pnpm version is specified. Please specify it by one of the following ways

VitePress 搭建自己的博客,有关使用 pnpm 时,deploy.yml 的额外配置

2024-04-20 17:42:11 615 1

原创 Vue.js 3 的设计思路

介绍了声明式、虚拟 DOM 的概念;讲解了最基本渲染器的实现逻辑;讨论了组件的本质;以及整体去看编译器和渲染器的关系。

2024-04-18 21:28:20 1006 1

原创 《Type Challenges》14 - 第一个元素

我们在定义类型别名的时候,已经约束了 'T' 必须是一个数组类型,但是 'T' 仍然有可能是一个空数组类型,因此我们用 '[infer F, ...any[]]' 这个元组类型来安全处理它是空数组的情况。在我的代码中,定义了一个名为 'First' 的泛型类型别名,泛型 'T extends any[]' 表示T是一个数组类型,可以是 'number[]'、'string[]' 等任何类型的数组,包括空数组 '[]',不确定数组中元素的类型,但一定是某一种数组。类型推断('infer')

2024-03-19 23:26:48 298 1

原创 《Type Challenges》13 - Hello World

可以给任何类型起一个名字,包括原始类型、联合类型、元组类型等等;不能被扩展(extends) 或 实现(implements);类型别名用来给一个类型起个新名字,使得类型更易于理解和使用。通常用来定义对象的形状。可以被扩展 和 实现。

2024-03-19 22:14:31 301 1

原创 手写题——实现 unshift()

讲解了 JavaScript 中数组 unshift() 方法的原生实现。

2024-03-19 17:51:01 419 1

原创 npm 对比 pnpm

比较 npm 和 pnpm 的区别,简单介绍它们的原理。

2024-03-13 14:07:53 1671

原创 Commitlint 的使用

介绍Commitlint的使用,来规范提交信息格式。

2024-03-12 23:25:50 674 1

原创 Husky 的使用

前端项目搭建,使用 Husky 工具,确保要提交到代码仓库中的代码都是符合 Eslint 规范的。

2024-03-12 22:21:00 1628 1

原创 git报错:Failed to connect to github.com port 443 after 21061 ms: Couldn‘t connect to server

git报错,关键词443,问题可能出现在代理服务器的配置上。

2024-01-17 14:15:36 1780

原创 水平方向滚动条

网页开发遇到不想要的水平滚动条,设置width: 100%来解决。

2024-01-15 15:28:24 474

空空如也

空空如也

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

TA关注的人

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