CodingWithAlice

我的一方小天地,如果对你有帮助,那真的太好了

Nextjs 学习笔记

Nextjs 学习笔记 一、导航相关 1、客户端导航:Nextjs 的前端部分提供内置的「文件系统路由」+ Link Nextjs 13.x 版本开始,<Link> 组件在使用时不用再写<a>标签,因为在渲染时会把 Link 标签解析为 a 标签 实现了「客户端导航」的方式,浏览器不会重新加载整个页面(a标签会触发重新刷新整个页面 ...

项目进展

项目进展 J-Table 规划表 LTN 盒子工具:记录每题做题时间 + 提示下次做题时间 Next_Pro : Nextjs + API Route + Sequelize + MySQL + Mongodb 日报✅、周报、月报、季报 阅读、影视化相关日报中:想要实现【一句之诗】,每天把喷涌的思考,汇总成一句话 2025.1.15 进展 Next_Pro...

React 设计原理 Part 3 实现篇

React 设计原理 Part 3 实现篇 本文主要是对《React 设计原理》一书的笔记和总结,方便之后回顾只看笔记,不再重新细读书籍。 目录 状态更新流程 - 性能优化的两个策略 1.1、编写能够命中性能优化策略的组件 1.2、调用性能优化 API,命中 bailout 策略 hooks实现 看本章时还是带着问题阅读: 1、React 怎么做的性能优化? ...

模拟实现jsonp

模拟实现jsonp 核心功能:组装 url+callback + 浏览器在 script 打开执行 常见错误: 1、遗忘在 window 上定义回调函数 - 功能:①使用 data值+②清理script标签 移除实在 document.body 上移除的,直接在 document 调用会提示错误 2、判断是否有 ?...

模拟实现instanceof

模拟实现instanceof 核心功能:检测对象原型链上是否有被检测函数的原型对象 常见错误: for…in 不合适->重点关注的是原型链上的原型对象匹配情况,而不是去比较属性名或者属性值 function fakeInstanceof(target, constructor) { // let cur = target.__proto__; let p...

模拟实现promise

模拟实现promise 明确 Promise 的几个基本信息: 1、状态凝固 默认pending/resolved/rejected,改变一次后无法再变更 2、传入的执行器有两个函数参数 resolve,reject,调用这两个函数触发状态变更 3、执行器是同步执行的 4、then 微任务执行,两个函数入参 onResolved,onRejected - catch语法糖,resolv...

第十八章 动画与Canvas图形

HTML5 的元素为 JavaScript 提供了动态创建图形的 API。这些图形需要使用特定上下文绘制,主要有两种。 第一种是支持基本绘图操作的 2D 上下文:填充和描绘颜色及图案、绘制矩形、绘制路径、绘制文本、创建渐变和图案 第二种是 3D 上下文,也就是 WebGL。WebGL 是浏览器对 OpenGL ES 2.0 的实现。OpenGL ES 2.0是游戏图形开发常用的一...

第十九章 表单脚本

​ 尽管 HTML 和 Web 应用自诞生以来已经发生了天翻地覆的变化,但 Web 表单几乎从来没有变过。JavaScript 可以增加现有的表单字段以提供新功能或增强易用性。为此,表单字段也暴露了属性、方法和事件供 JavaScript 使用。 ​ 剪贴板事件,包括 copy、cut 和 paste,在不同浏览器中的实现有很大差异。 ​ 富文本编辑通常以使用包含空白 HTML 文档的内...

观察者模式 EventEmitter

观察者模式 EventEmitter 手动实现 EventEmitter // addListener(event, listener) 为指定事件添加一个监听器,默认添加到监听器数组的尾部。 // removeListener(event, listener) 移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。它接受两个参数,第一个是事件名称,第二个是回调函数名称。 //...

数组乱序 洗牌算法

数组乱序 洗牌算法 从最后一个元素开始,从数组中随机选出一个位置,交换,直到第一个元素。 function disorder(arr){ let cur = arr.length - 1; while(cur >= 0) { let random = parseInt(Math.random() * arr.length); [ar...