一、简述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面试题整理相关推荐

  1. 计算机组成算术流水线,计算机组成系统结构试题整理.doc

    计算机组成系统结构试题整理 选择题(50分,每题2分,正确答案可能不只一个,可单选或复选) (CPU周期.机器周期)是内存读取一条指令字的最短时间. (多线程.多核)技术体现了计算机并行处理中的空间并 ...

  2. 2010 .NET面试题整理之基础篇

    2010 .NET面试题整理之基础篇 zhuan 开篇语:对于已有工作经验的朋友,也许面试题已显得不怎么重要,但是如果你应聘的还仅仅是个普通的程序员,相信在很多的公司都还是会先拿出一套面试题,可能对整 ...

  3. android笔试题整理

    笔试题整理 今天接到消息,说下个星期三.会陆陆续续的有公司来学校找暑假实习生.还没准备好啊,这就来啦?麻蛋 我慌的要死啊~ 1.Math.round(11.5)等于多少(). Math.round(- ...

  4. Java经典面试题整理及答案详解(八)

    简介: Java经典面试题第八节来啦!本节面试题包含了进程.线程.Object类.虚拟内存等相关内容,希望大家多多练习,早日拿下心仪offer- 了解更多: Java经典面试题整理及答案详解(一) J ...

  5. Java经典面试题整理及答案详解(三)

    简介: 以下是某同学面试时,面试官问到的问题,关于面试题答案可以参考以下内容- 上一篇:Java经典面试题整理及答案详解(二) Java面试真题第三弹接住!相信通过前两节的学习,大家对于Java多少有 ...

  6. 【资料整理】一些英语面试题整理

    [求职英语]一些英语面试题整理 SkySeraph Nov 3th 2011  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified ...

  7. 史上最全 BAT 大厂面试题整理

    转载自 史上最全 BAT 大厂面试题整理!(速度收藏) 主要分为以下几部分: (1)java面试题 (2)Android面试题 (3)高端技术面试题 (4)非技术性问题&HR问题汇总 1 ja ...

  8. 常见的面试题整理 -python

    常见的面试题整理 在这里插入代码片 #二分查找def binarySearch(alist, item):first=0;last=len(alist)-1;while first <= las ...

  9. [转载] Spring面试题整理

    参考链接: Java中的动态方法Dispatch和运行时多态 Spring面试题整理 2018年03月07日 21:11:46 hrbeuwhw 阅读数:49116 Spring 概述 1. 什么是s ...

最新文章

  1. Git学习系列之Git的功能特性(从一般开发者的角度和主开发者的角度来剖析)...
  2. Vue学习(MVVM、入门练习)-学习笔记
  3. webstorm遇到的问题
  4. [SpringSecurity]HelloWorld入门案例
  5. re.compile
  6. 汉字统计--统计给定文本文件中汉字的个数。
  7. CAD建模软件BricsCAD 22.2.03 for Mac
  8. 语言木头折断放置问题_沃尔玛验厂不能接受的问题点有哪些
  9. 如何让自己电脑的鼠标指针变的更炫酷来看看这个吧
  10. 常用英文学术论文写作词汇与表达
  11. cmd: cd /D %~dp0 的含义
  12. qt开源项目: tiled 瓦片 游戏地图编辑器
  13. MediaRecorder录制视频和录音
  14. sublime Mac版怎么安装? Mac下载安装sublime的教程
  15. 圆锥体积公式的推导过程(Formula Derivation of Cone's volume)
  16. 轩辕实验室丨基于信息熵的车载网络流量异常检测防御方法
  17. “华为”和“荣耀”的关系紧密,双品牌携手驰骋手机市场
  18. vue项目整合UEditor看这一篇就够了
  19. 汉诺塔游戏java下载,利用python实现汉诺塔游戏
  20. 如何判断对象是否是垃圾

热门文章

  1. A股实践 :图神经网络与新闻共现矩阵策略(附代码)
  2. 【vue】Storage二次封装
  3. oracle收集统计信息和直方图,oracle统计信息和直方图
  4. Worktile中的实时消息推送服务实现
  5. [转载]jQuery诞生记-原理与机制
  6. 北航计算机学院 高小鹏,毕业季 | 以来自学院的深情祝福,定格属于你的最美青春(二)...
  7. 人工智能入门四件套,你学人工智能避不开的知识点
  8. 大文件数据传输会遇到哪些问题?
  9. Fortunate Finds
  10. jsp servlet mysql实现的java学生选课系统源码附带高清视频指导运行教程及论文