前端技术文章
-
Vue.js中计算属性需通过自定义Hook(composable)复用,封装为useXXX函数并返回ref/computed;跨组件共享应借助Piniastore或provide/inject,避免响应性丢失与性能问题。111 收藏 -
StyledComponents控制状态的核心是将样式逻辑内聚于组件,通过props传递状态(如布尔值、枚举、主题),在模板字符串中用箭头函数映射样式;结合useState/useReducer实现交互响应;避免副作用,拆分状态容器与样式组件,推荐用attrs()预设属性、工具函数或自定义Hook封装复杂逻辑。111 收藏 -
HTML排序本质是JavaScript操作DOM节点顺序;默认sort()按字符串字典序比较导致"10"排在"2"前,需显式转数字;带单位、空值需清洗和fallback;推荐直接操作tr引用而非预存数组;表头用data属性维护升降序状态;含表单元素时需cloneNode避免丢失状态。111 收藏 -
图片未铺满全屏的根本原因是元素自身未占满视口,需确保目标元素(如html、body或容器)设height:100vh且margin:0,同时注意层叠上下文与移动端渲染差异。111 收藏 -
SharedWorker是唯一能实现多标签页共用单点WebSocket心跳的机制,其核心是将心跳逻辑完全下沉至独立线程,确保页面失焦或后台时仍持续保活;需在shared-worker.js中实现定时ping、pong响应校验、状态广播、指数退避重连及兼容性降级。111 收藏 -
JavaScript安全解析JSON需三步:严格校验格式、用try...catch捕获异常、解析后验证数据类型与结构;须预处理BOM和空白,确保编码正确。111 收藏 -
绝对定位元素点不了,通常是被上层遮罩拦截点击或z-index未生效;需检查pointer-events值、层叠上下文及伪元素等覆盖因素,并优先用pointer-events:none穿透。111 收藏 -
本文用完整工作流讲解前端长列表虚拟滚动:计算可视区、设置上下占位、只渲染窗口数据,并用卡顿排查清单验证优化效果。111 收藏 -
ID选择器优先级高于类选择器,因CSS权重按四元组(内联,ID,类/伪类/属性,标签/伪元素)逐位比较,ID存在时第二位为1必胜;调试应查隐藏ID,避免滥用!important。110 收藏 -
元素支持 min 和 max 属性,用于限制用户可选择的日期范围。以下是具体用法和示例:✅ 1. min 属性作用:设置用户可选择的最早日期。格式:YYYY-MM-DD示例:✅ 2. max 属性作用:设置用户可选择的最晚日期。格式:YYYY-MM-DD示例:
input[type="date"]的min/max属性仅接受严格YYYY-MM-DD格式;错误格式如缺零、含时间或斜杠将导致静默失效,checkValidity()返回false;动态设置需用setAttribute或手动触发重绘;联动日期时须同步清空min/max。110 收藏 -
掌握CSS的transformrotate与animation结合使用,可实现加载图标匀速旋转、悬停交互及摆动等动态效果,提升网页视觉体验。109 收藏 -
媒体查询本身不调用GPU,但其激活的样式(如transform、will-change)会间接增加GPU负载,导致卡顿、掉帧和发热;需优化图层合成、断点单位、布局切换及媒体元素缩放策略。109 收藏 -
v-text安全输出纯文本,自动转义HTML字符、防XSS;v-html解析执行HTML,不转义、有XSS风险,仅适用于可信富文本。109 收藏 -
gap比margin更适合卡片布局,因其是容器级属性,只作用于直接子元素间间隙,不触发外边距合并,避免首尾多余空白;但需卡片为flex或grid的直接子元素。109 收藏 -
结论:别碰body的margin,用容器元素包裹内容并设margin或padding更可控;因浏览器对body默认外边距不一致,重置会引发外边距合并等不可预期问题。109 收藏