React 组件生命周期 在本章节中我们将讨论 React 组件的生命周期。 组件的生命周期可分成三个状态: Mounting:已插入真实 DOM Updating:正在被重新渲染 Unmounting:已移出真实 DOM 生命周期的方法有: componentWillMount 在渲染前调用,在客 ...
转载
2021-10-27 11:18:00
299阅读
2评论
本文整理了React核心面试题,涵盖基础概念、生命周期、Hooks和性能优化等关键知识点。重点介绍了JSX语法、组件生命周期方法、常用Hooks(useState、useEffect等)的使用技巧,以及通过React.memo、useCallback等优化性能的方法。文章还对比了不同状态管理方案,帮助开发者深入理解React特性和最佳实践,为面试和实际开发提供实用指导。
模拟dom,状态发生变化时,先在js对象上计算和比较,找出最小差异,然后将这些差异批量更新到真实dom。数据请求,事件监听,避免阻塞渲染,提升用户体验。初始渲染,更新成本。
react 事件机制 React并不是将click事件绑定到了div的真实DOM上,而是在document处监听了所有的事件, 当事件发生并且冒泡到document处的时候,React将事件内容封装并交由真正的处理函数运行。 这样的方式不仅仅减少了内存的消耗,还能在组件挂在销毁时统一订阅和移除事件。 ...
转载
2021-09-27 12:01:00
244阅读
2评论
对 React 的理解、特性
React 是靠数据驱动视图改变的一种框架,它的核心驱动方法就是用其提供的 setState 方法设置 state 中的数据从而驱动存放在内存中的虚拟 DOM 树的更新
更新方法就是通过 React 的 Diff 算法比较旧虚拟 DOM 树和新虚拟 DOM 树之间的 Change ,然后批处理这些改变。
遵循组件设计模式、声明式编程范式和函数式编程概念,以使前端应
2021前端react高频面试题汇总1.ReactRouter的实现原理是什么?客户端路由实现的思想:基于hash的路由:通过监听hashchange事件,感知hash的变化改变hash可以直接通过location.hash=xxx基于H5history路由:改变url可以通过history.pushState和resplaceState等,会将URL压入堆栈,同时能够应用history.go()
原创
2021-12-07 12:54:04
330阅读
对ReactSSR的理解服务端渲染是数据与模版组成的html,即HTML=数据+模版。将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序。页面没使用服务渲染,当请求页面时,返回的body里为空,之后执行js将html结构注入到body里,结合css显示出来;SSR的优势:对SEO友好所有的模版、图片等资源都存在服务器端一个html返回所有数
原创
2022-09-13 13:55:13
138阅读
前端面试题之React篇一、组件基础1. React 事件机制2. React的事件和普通的HTML事件有什么不同?3. React 组件中怎么做事件代理?它的原理是什么?4. React 高阶组件、Render props、hooks 有什么区别,为什么要不断迭代
转载
2021-06-03 13:36:41
1304阅读
当调用setState的时候,发生了什么操作?当调用setState时,React做的第一件事是将传递给setState的对象合并到组件的当前状态,这将启动一个称为和解(reconciliation)的过程。和解的最终目标是,根据这个新的状态以最有效的方式更新DOM。为此,React将构建一个新的React虚拟DOM树(可以将其视为页面DOM元素的对象表示方式)。一旦有了这个DOM树,为了弄清DO
原创
2022-09-14 08:07:26
238阅读
【前端高频面试题】- React篇1. 请说说 React 的核心概念有哪些?React 核心概念围绕“组件化”和“高效渲染”设计,核心包括以下几点:组件(Component):React 应用的基本构建块,分为函数组件(推荐)和类组件,负责封装 UI 结构和逻辑,实现复用。JSX:JavaScri ...
可以使用TypeScript写React应用吗?怎么操作?(1)如果还未创建CreateReactApp项目直接创建一个具有typescript的CreateReactApp项目:javascriptnpxcreatereactappdemotypescript(2)如果已经创建了CreateReactApp项目,需要将typescript引入到已有项目中通过命令将typescript引入项目:j
原创
2022-09-14 10:39:40
877阅读