全部文章

共 1306 篇文章

react07-30
阅读

React性能优化三剑客:memo、useMemo和useCallback详解

前言 在React开发中,性能优化是一个永恒的话题。今天我们就来深入探讨React提供的三个重要性能优化工具: 、 和 ,它们如何帮助我们构建更高效的React应用。 1\. 为什么需要性能优化? 🤔 React的核心机制是当组件的state或props发生变化时,组件会重新渲染。但有时这种重新渲染是不必要的: 父组件更新导致所有子组件重新渲染 ,即使子组件的props没有变化 复杂计算在每次渲染时重复执行 ,消耗大量资源 函数引用在...

#学习#面试
javascript07-30
阅读

揭秘JS事件循环:带你深入理解async与await、Promise与RAF

🚀 探索更多React Hooks的可能性?访问 查看完整文档,通过 快速安装,让你的React开发效率翻倍! 引言 在前端开发领域,JavaScript的事件循环(Event Loop)机制是理解异步编程、优化性能的关键。它不仅是面试中的高频考点,更是编写高效、无阻塞代码的基石。然而,许多开发者对其理解仍停留在表面,尤其是当 、 以及 等现代异步API交织在一起时,其执行顺序往往令人困惑。 今天,我们将通过一道经典的字节跳动面试题,...

#学习#面试
浏览器07-30
阅读

浏览器内核到底有哪些?它们各自又有什么区别?

这问题其实很多刚入行的同学经常搞混,所以今天我来一次性讲明白—— 浏览器内核 到底有哪些?它们各自又有什么区别? 说白了,浏览器内核就是浏览器的大脑,分两部分: 渲染引擎(Rendering Engine) :负责网页的排版渲染,HTML、CSS统统交给它。 JS引擎(JavaScript Engine) :处理JavaScript脚本逻辑,比如你点按钮后弹出对话框这种行为。 1)常见浏览器内核盘点 下面我直接列几个主流的浏览器内核,顺...

#学习#面试
javascript07-30
阅读

面试官:怎么禁止用户复制

面试官:怎么禁止用户复制我们网页中的内容 青铜段位:阻止默认事件法 包括但不限于阻止copy事件,mouse事件(阻止选区产生),阻止key事件(阻止键盘操作)等等。 例子: 未登录的csdn 面试官挑眉 :“用户按F12禁用JavaScript,阁下又当如何应对?” 黄金段位:CSS 幻术 本质上就是用css让用户无法区选到对应的内容,从而不能产生复制。 面试官微笑 :“我在控制台删掉::after伪元素,阁下幻术不攻自破,并且无法区...

#学习#面试
javascript07-28
阅读

兼容性问题

浏览器兼容性问题是什么? 浏览器兼容性问题通常是指网页或 Web 应用在不同浏览器或版本中表现不一致的问题。说白了无非就是 , 在旧版本浏览器中不兼容。 解决思路 1. 明白目标浏览器范围 2. 找个插件将现代 JS 转到 ES5 3. 处理一下CSS的兼容性问题 解决方案 1. 通过定义 明确目标浏览器范围 2. 使用 将现代 JS 转到 ES5 3. 使用 给 CSS 加厂商前缀 好了,开搞 .browserslistrc文件是什么...

#学习
javascript07-28
阅读

虚拟DOM:为什么React-Vue比直接操作DOM快

一、一个让我加班到凌晨的性能问题 去年优化公司后台管理系统时,我遇到个诡异现象:页面上有个超长的表格,每次筛选都要卡顿3 4秒。我本能地用jQuery直接操作DOM重渲染,结果性能更差了… 直到我把代码改成React+虚拟DOM, 性能直接提升8倍 !今天就来揭秘这个"前端性能加速器"的工作原理。 二、虚拟DOM是什么? 用大白话说: 虚拟DOM就是真实DOM的"轻量级替身" 。它本质上是JS对象,保存着节点类型、属性和子元素等信息。...

#学习#面试
前端性能07-27
阅读

前端常见的性能指标采集

前言 作为前端,我们的任务便是给用户一个好的产品体验感,不管是从首次进入页面的加载时长,还是对于交互时页面的响应流畅度,都是我们应该关注的点。 RAIL模型是由谷歌提出的,一种以用户为中心的性能模型,RAIL分别代表Web应用生命周期的四个方面:响应、动画、空闲、加载。 一般不管是页面打开还是流程交互,又或者是网络反馈,这也操作我们应该尽量在1000ms内完成,用户的体验感才不会差,用户留存率也将得到提升。 下面看一下我们常见的一些性能...

#学习#面试
javascript07-23
阅读

JavaScript异步编程中的 Promise 机制解析

一、了解进程与线程 在不同场景中, 进程 都可以用来描述该场景中的一个效果, 线程 是 进程 里面的一个更小的单位,通常多个 线程 配合工作构成一个 进程 。 进程 :操作系统资源分配的基本单位,每个进程拥有独立的内存空间和资源。 一个进程可以有多个线程 。比如在Windows系统中,一个运行的 就是一个进程。它是一个运行中的程序实例,负责完成特定任务。进程之间相互独立,切换时需要较大的系统开销。 线程 :进程中的执行单元,CPU调度的...

#学习#面试
javascript07-23
阅读

产品:页面的地址要改变,但是不能刷新页面

最近,遇到这样一个需求: 需要修改浏览器地址栏中的 URL,但不能刷新页面 。传统的 赋值,会导致页面重载。那么,有没有办法避免刷新,同时更新 URL 呢? 答案是 有的! 我们可以使用 或 机制来实现这一需求(无刷新修改 URL)。 无刷新修改 URL 1、history.pushState():新增历史记录 能够在不刷新页面的情况下,向浏览器历史记录中添加一条新记录,并更新 URL。注意:这个方法是可以使用户可以使用浏览器的“前进”...

#学习