React面试题整理

1、什么是虚拟DOM?(start)
虚拟DOM是真实DOM的内存表示,是一种模式。用ReactDOM将虚拟DOM和真实DOM调和(同步),也就是虚拟DOM通过ReactDOM呈现到页面。
虚拟DOM是React内部在用的,不需要那么多的属性。
虚拟DOM的本质是object类型的对象。

2、类组件和函数组件的区别?(start)
1)函数组件的性能比类组件的性能要高。
2)类组件使用时需要实例化,函数组件直接执行函数取返回结果即可。
3)为了提高性能,尽量使用函数组件。
4)函数组件没有this,没有生命周期,没有状态state,
5) 类组件有this,有生命周期,有状态state。

3、React中的refs作用是什么?(start:start)
Refs 是react 提供给我们的安全访问DOM元素或者某个组件实例的句柄。

4、描述React事件处理。(start:start)
为了解决跨浏览器兼容性问题,React事件处理程序将传递SyntheticEvent(综合事件)实例,该实例是React跨浏览器本机的跨浏览器包装器。

5、state 和 props的区别?(start:start)
props 是一个外部传进组件的参数,主要用于父组件向子组件传递数据,它具有可读性和不变性,只能通过外部组件主动传入新的props来重新渲染子组件,否则子组件的props以及展现形式不会改变。
state 的主要用于组件保存、控制及修改自己的状态,它只能在constructor中初始化1,它算是组件的私有属性,不可通过外部访问和修改,只能通过组件内部的this.setState 来修改,修改state 属性会导致组件的重新渲染。

6、如何创建refs?(start:start)
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} />;
  }
}


lass UserForm extends Component {
  handleSubmit = () => {
    console.log("Input Value is: ", this.input.value)
  }
  render () {
    return (
      <form onSubmit={this.handleSubmit}>
        <input
          type='text'
          ref={(input) => this.input = input} /> // Access DOM input in handle submit
        <button type='submit'>Submit</button>
      </form>
    )
  }
}

还可以借助闭包在功能组件中使用它。
7、什么是高阶组件?(start:start)
高阶组件就是一个函数,且该函数接受一个组件作为参数,返回一个新的组件。
const EnhancedCo

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值