1、React 事件机制
react事件并不是把事件绑定到div的真实DOM上,而是在document处进行监听,当事件发生并冒泡到document处时就把事件封装并交给真正的事件处理函数,如果哦想要取消默认事件,那么就需要使用event.prevendefault,当然react事件不是原生事件而是合成事件。
2、React 高阶组件、Render props、hooks 有什么区别,为什么要不断迭代
高阶组件就是HOC,用来复用组件逻辑,接受一个组件作为参数,返回一个新的组件。 HOC可以在不修改原组件的情况下,追加功能。
props是把函数作为props进行传递,实现数据的共享。 props频繁使用的话就会比较冗余。
Hooks是react16.8的特性,可以修改状态。
3、React 高阶组件是什么,和普通组件有什么区别,适用什么场景
HOC就是高阶组件,用来复用组件逻辑,接受一个组件作为参数,返回一个新的组件, 适用于条件渲染。
4、哪些方法会触发 React 重新渲染?重新渲染 render 会做些什么?
使用setState可以触发页面的重新渲染 当props发生改变时也会触发页面的重新渲染 使用foraceUpdata时也会触发页面的重新渲染 当父组件发生改变时也会触发子组件的重新渲染
render时就会生成虚拟DOM 当虚拟DOM时会对比新旧DOM,然后就会更新。 按照需要的更新在去更新,没有变的就不需要更新。
5、对有状态组件和无状态组件的理解及使用场景
有状态组件就是类组件 有继承,有this,有react生命周期。 无状态组件就是函数组件没有继承,完全避免了this的使用。如果使用生命周期不频繁的时候我们就可以使用函数式组件