Web Components 生命周期浏览器 - 查看回调执行
创建一个测试自定义元素,记录并展示 connectedCallback, attributeChangedCallback 等执行顺序。
UD5工具箱
直观展示自定义元素的五个生命周期钩子调用时机与顺序
Web Component(自定义元素)共有 5个 生命周期钩子:
document.adoptNode() 移动到新文档时调用。static observedAttributes 使用。constructor 在元素创建时立即调用(new 或 document.createElement),此时元素尚未连接到DOM,无法访问父节点、子元素或属性。适合创建Shadow DOM和初始化内部状态。
connectedCallback 在元素实际插入到文档DOM后才调用,此时可以安全地访问DOM树、获取属性值、发起网络请求、设置事件监听器。元素可能被多次移除和重新插入,每次插入都会触发此回调。
简单记忆:constructor = 出生证明,connectedCallback = 正式上岗。
只有当属性名被列在 static observedAttributes 数组中时,该属性的变化才会触发 attributeChangedCallback。
static get observedAttributes() {
return ['label', 'color']; // 只有这两个属性变化会触发回调
}
触发方式包括:setAttribute()、removeAttribute()、直接修改HTML属性。注意:通过JavaScript属性赋值(如 el.label = 'x')不会自动触发,需在setter中手动调用 setAttribute。
adoptedCallback 在日常开发中较少使用,但在以下场景中很有价值:
document.adoptNode() 将元素从一个文档转移到另一个文档回调接收两个参数:adoptedCallback(oldDocument, newDocument),可用于重新绑定文档相关资源。
正常创建并添加到DOM:
constructor() — 元素实例化connectedCallback() — 元素插入DOMattributeChangedCallback() — 如果有属性在connected之前或之后被设置跨文档移动(adoptNode):
disconnectedCallback() — 从原文档DOM移除adoptedCallback() — 文档归属变更connectedCallback() — 添加到新文档DOM(如果执行了appendChild)移除再重新添加:disconnectedCallback → connectedCallback(可多次循环)
创建一个测试自定义元素,记录并展示 connectedCallback, attributeChangedCallback 等执行顺序。
生成非矩形、由内向外发散的圆形迷宫,支持打印用于幼儿专注力训练。
并行动画展示试除法和埃拉托斯特尼筛法查找素数的过程,对比效率。
输入多个地点线索,生成一系列二维码,每个扫码后显示下一条线索。
配置不同的下划线出现、消失动画(从中间、左侧等),生成链接美化CSS。
展示一些常用内置HTML元素和自定义元素例子,提供代码复制。
从眉毛、眼睛、嘴巴等部件中拖拽组合,生成独一无二的日式颜文字表情,一键复制。
绘制 SVG 路径,让元素沿着路径运动,调整速度和缓动,生成动画代码。
配置下划线从中间或一侧滑出的动画,生成无限菜单效果代码。
输入文字描述或符号(如K, P),生成编织花样预览图,方便织女试读图解。
在页面上叠加可调节的基线网格,可视化检查文字是否对齐基线,实现精确排版。
浏览 Chrome DevTools Protocol 域和方法,填充参数生成 JSON 命令,用于远程调试。
在同一数据上运行多种数组遍历方式,测量并比较它们的执行时间,辅助性能优化决策。
将普通CSS代码转换为Styled Components的模板字符串格式。
为每个字符添加Unicode删除线组合符号,生成带删除线的纯文本,适用于格式化受限场景。
输入一个数字串,在已计算的圆周率小数位中查找首次出现位置。
提供点阵并编号,玩家按序点击连线,显现简单图形。
构建或随机生成二叉树,逐步动画展示前序、中序、后序和层序遍历的路径。
上传照片,通过边缘检测和纹理叠加转换为逼真的铅笔素描风格图片,可调节线条密度。
选择算法并随机生成数组,以彩色条动画展示排序过程,帮助理解算法。
在散点图上拖拽数据点,实时更新最小二乘回归线,显示斜率和截距。
编写海龟绘图规则和初始公理,迭代生成龙曲线、植物等分形图形。
生成点击导航平滑滚动到对应Section并高亮当前菜单项的完整代码。
挪动七巧板块直观展示勾股定理的几何证明,适合爱动手的数学爱好者。
构建二叉树节点,动态演示三种深度优先遍历顺序及逐层遍历。
显示人体骨骼图,拖拽骨骼名称到对应位置,检验解剖学知识。
设置外圆和内圆半径及笔位置,在屏幕上拖动绘制复杂的几何螺旋图案。
用密集的交叉线条重绘图片,光影由线条的粗细和密度决定,模拟版画排线风格。
绘制 SVG 路径,将动画元素绑定到路径上,生成 offset-path 动画代码。
向指定 URL 发送不同 HTTP 方法的请求,显示响应状态码、头部和主体,学习 RESTful API。