2022react面试题整理
一、简述react事件机制
当用户在为onClick添加函数时,React并没有将Click时间绑定在DOM上面
而是在document处监听所有支持的事件,当事件发生并冒泡至document处时,React将事件内容封装交给中间层SyntheticEvent(负责所有事件合成)
所以当事件触发的时候,对使用统一的分发函数dispatchEvent将指定函数执行。React在自己的合成事件中重写了 stopPropagation方法,将 isPropagationStopped设置为 true,然后在遍历每一级事件的过程中根据此遍历判断是否继续执行。这就是 React自己实现的冒泡机制
二、如何在React中使用innerHTML
增加dangerouslySetInnerHTML属性,并且传入对象的属性名叫_html
function Component(props){return <div dangerouslySetInnerHTML={{_html:'<span>你好</span>'}}></div>
}
三、react中的Portal是什么?
Portals 提供了一种很好的将子节点渲染到父组件以外的 DOM 节点的方式。
第一个参数(child)是任何可渲染的 React 子元素,例如一个元素,字符串或碎片。
第二个参数(container)则是一个 DOM 元素。
ReactDOM.createPortal(child, container)
四、为何React事件要自己绑定this
在 React源码中,当具体到某一事件处理函数将要调用时,将调用 invokeGuardedCallback方法。
function invokeGuardedCallback(name, func, a) { try { func(a); } catch (x) {if (caughtError === null) { caughtError = x; } }}
事件处理函数是直接调用的,并没有指定调用的组件,所以不进行手动绑定的情况下直接获取到的 this是不准确的,所以我们需要手动将当前组件绑定到 this上
五、类组件和函数组件之间的区别是啥?
点击查看详情
六、state 和 props 区别是啥?
- state 是组件自己管理数据,控制自己的状态,可变;
- props 是外部传入的数据参数,不可变;
- 没有state的叫做无状态组件,有state的叫做有状态组件;
- 多用 props,少用 state,也就是多写无状态组件。
七、在构造函数调用 super 并将 props 作为参数传入的作用
在调用 super() 方法之前,子类构造函数无法使用this引用,ES6 子类也是如此。
将 props 参数传递给 super() 调用的主要原因是在子构造函数中能够通过this.props来获取传入的 props
传递了props
class MyComponent extends React.Component {constructor(props) {super(props);console.log(this.props); // { name: 'sudheer',age: 30 }}}
没传递 props
class MyComponent extends React.Component {constructor(props) {super();console.log(this.props); // undefined// 但是 Props 参数仍然可用console.log(props); // Prints { name: 'sudheer',age: 30 }}render() {// 构造函数外部不受影响console.log(this.props) // { name: 'sudheer',age: 30 }}}
八、React中refs的作用是什么?有哪些应用场景?
Refs 提供了一种方式,用于访问在 render 方法中创建的 React 元素或 DOM 节点。Refs 应该谨慎使用,如下场景使用 Refs 比较适合:
- 处理焦点、文本选择或者媒体的控制
- 触发必要的动画
- 集成第三方 DOM 库
Refs 是使用 React.createRef() 方法创建的,他通过 ref 属性附加到 React 元素上。
要在整个组件中使用 Refs,需要将 ref 在构造函数中分配给其实例属性:
class MyComponent extends React.Component {constructor(props) {super(props)this.myRef = React.createRef()}render() {return <div ref={this.myRef} />}
}
九、useState和useRef的异同
useState和useRef的异同
2022react面试题整理相关推荐
- 计算机组成算术流水线,计算机组成系统结构试题整理.doc
计算机组成系统结构试题整理 选择题(50分,每题2分,正确答案可能不只一个,可单选或复选) (CPU周期.机器周期)是内存读取一条指令字的最短时间. (多线程.多核)技术体现了计算机并行处理中的空间并 ...
- 2010 .NET面试题整理之基础篇
2010 .NET面试题整理之基础篇 zhuan 开篇语:对于已有工作经验的朋友,也许面试题已显得不怎么重要,但是如果你应聘的还仅仅是个普通的程序员,相信在很多的公司都还是会先拿出一套面试题,可能对整 ...
- android笔试题整理
笔试题整理 今天接到消息,说下个星期三.会陆陆续续的有公司来学校找暑假实习生.还没准备好啊,这就来啦?麻蛋 我慌的要死啊~ 1.Math.round(11.5)等于多少(). Math.round(- ...
- Java经典面试题整理及答案详解(八)
简介: Java经典面试题第八节来啦!本节面试题包含了进程.线程.Object类.虚拟内存等相关内容,希望大家多多练习,早日拿下心仪offer- 了解更多: Java经典面试题整理及答案详解(一) J ...
- Java经典面试题整理及答案详解(三)
简介: 以下是某同学面试时,面试官问到的问题,关于面试题答案可以参考以下内容- 上一篇:Java经典面试题整理及答案详解(二) Java面试真题第三弹接住!相信通过前两节的学习,大家对于Java多少有 ...
- 【资料整理】一些英语面试题整理
[求职英语]一些英语面试题整理 SkySeraph Nov 3th 2011 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified ...
- 史上最全 BAT 大厂面试题整理
转载自 史上最全 BAT 大厂面试题整理!(速度收藏) 主要分为以下几部分: (1)java面试题 (2)Android面试题 (3)高端技术面试题 (4)非技术性问题&HR问题汇总 1 ja ...
- 常见的面试题整理 -python
常见的面试题整理 在这里插入代码片 #二分查找def binarySearch(alist, item):first=0;last=len(alist)-1;while first <= las ...
- [转载] Spring面试题整理
参考链接: Java中的动态方法Dispatch和运行时多态 Spring面试题整理 2018年03月07日 21:11:46 hrbeuwhw 阅读数:49116 Spring 概述 1. 什么是s ...
最新文章
- Git学习系列之Git的功能特性(从一般开发者的角度和主开发者的角度来剖析)...
- Vue学习(MVVM、入门练习)-学习笔记
- webstorm遇到的问题
- [SpringSecurity]HelloWorld入门案例
- re.compile
- 汉字统计--统计给定文本文件中汉字的个数。
- CAD建模软件BricsCAD 22.2.03 for Mac
- 语言木头折断放置问题_沃尔玛验厂不能接受的问题点有哪些
- 如何让自己电脑的鼠标指针变的更炫酷来看看这个吧
- 常用英文学术论文写作词汇与表达
- cmd: cd /D %~dp0 的含义
- qt开源项目: tiled 瓦片 游戏地图编辑器
- MediaRecorder录制视频和录音
- sublime Mac版怎么安装? Mac下载安装sublime的教程
- 圆锥体积公式的推导过程(Formula Derivation of Cone's volume)
- 轩辕实验室丨基于信息熵的车载网络流量异常检测防御方法
- “华为”和“荣耀”的关系紧密,双品牌携手驰骋手机市场
- vue项目整合UEditor看这一篇就够了
- 汉诺塔游戏java下载,利用python实现汉诺塔游戏
- 如何判断对象是否是垃圾
热门文章
- A股实践 :图神经网络与新闻共现矩阵策略(附代码)
- 【vue】Storage二次封装
- oracle收集统计信息和直方图,oracle统计信息和直方图
- Worktile中的实时消息推送服务实现
- [转载]jQuery诞生记-原理与机制
- 北航计算机学院 高小鹏,毕业季 | 以来自学院的深情祝福,定格属于你的最美青春(二)...
- 人工智能入门四件套,你学人工智能避不开的知识点
- 大文件数据传输会遇到哪些问题?
- Fortunate Finds
- jsp servlet mysql实现的java学生选课系统源码附带高清视频指导运行教程及论文