百度前端高频react面试题总结

本文总结了React面试中常见的问题,涵盖了从使用TypeScript编写React应用的步骤,到React Fiber的工作原理,再到组件的生命周期和优化技巧,如pureComponent与FunctionComponent的区别,diff算法的运作,以及如何避免prop drilling。此外,还讨论了React中如何利用ref获取DOM元素,以及如何理解和使用setState。文章深入探讨了React的内部机制,如Redux的dispatch实现和Hooks的使用限制。
摘要由CSDN通过智能技术生成

可以使用TypeScript写React应用吗?怎么操作?

(1)如果还未创建 Create React App 项目

  • 直接创建一个具有 typescript 的 Create React App 项目:
 npx create-react-app demo --typescript

(2)如果已经创建了 Create React App 项目,需要将 typescript 引入到已有项目中

  • 通过命令将 typescript 引入项目:
npm install --save typescript @types/node @types/react @types/react-dom @types/jest

  • 将项目中任何 后缀名为 ‘.js’ 的 JavaScript 文件重命名为 TypeScript 文件即后缀名为 ‘.tsx’(例如 src/index.js 重命名为 src/index.tsx )

pureComponent和FunctionComponent区别

PureComponentComponent完全相同,但是在shouldComponentUpdate实现中,PureComponent使用了propsstate的浅比较。主要作用是用来提高某些特定场景的性能

什么是 React Fiber?

Fiber 是 React 16 中新的协调引擎或重新实现核心算法。它的主要目标是支持虚拟DOM的增量渲染。React Fiber 的目标是提高其在动画、布局、手势、暂停、中止或重用等方面的适用性,并为不同类型的更新分配优先级,以及新的并发原语。
React Fiber 的目标是增强其在动画、布局和手势等领域的适用性。它的主要特性是增量渲染:能够将渲染工作分割成块,并将其分散到多个帧中。

React 父组件如何调用子组件中的方法?

  1. 如果是在方法组件中调用子组件(>= react@16.8),可以使用 useRef 和 useImperativeHandle:
const {
    forwardRef, useRef, useImperativeHandle } = React;

const Child = forwardRef((props, ref) => {
   
  useImperativeHandle(ref, () => ({
   
    getAlert() {
   
      alert("getAlert from Child");
    }
  }));
  return <h1>Hi</h1>;
});

const Parent = () => {
   
  const childRef = useRef();
  return (
    <div>
      <Child ref={
   childRef} />
      <button onClick={
   () => childRef.current.getAlert()}>Click</button>
    </div>
  );
};
  1. 如果是在类组件中调用子组件(>= react@16.4),可以使用 createRef:
const {
    Component } = React;

class Parent extends Component {
   
  constructor(props
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值