什么是React?它的特点是什么?
1、React是一个用于构建用户界面的JavaScript库,主要用于构建单页面Web应用程序。
2、React的特点包括:虚拟DOM(Virtual DOM)实现高效的DOM操作、组件化开发、声明式编程风格、单向数据流、生命周期方法等。
什么是JSX?它和普通的HTML有什么不同?
1、JSX是一种JavaScript的语法扩展,可以让我们在JavaScript中编写类似HTML的代码,用于描述UI。
2、JSX和普通的HTML最大的不同是,JSX可以直接在JavaScript中使用,并且可以嵌入JavaScript表达式,使得动态渲染变得更加方便。
什么是React组件?它们有哪些类型?
1、React组件是构成React应用程序的基本单位,可以理解为一个封装了UI和逻辑的独立模块
2、React组件分为函数组件和类组件两种类型。函数组件是无状态的,只负责根据props渲染UI;类组件具有状态和生命周期方法。
什么是状态提升(State Lifting)?为什么要进行状态提升?
1、状态提升是将组件之间共享的状态移动到它们的最近共同祖先组件中的过程。
2、进行状态提升可以避免状态的多次传递和保持组件之间的数据同步,提高代码的可维护性和复用性。
什么是React Hooks?它们的作用是什么?
1、React Hooks是React 16.8引入的新特性,可以让函数组件拥有类组件的功能,如状态管理、生命周期方法等。
2、Hooks的作用包括使函数组件更加灵活、可复用,减少重复性代码,同时提高了代码的可读性。
3、Hooks可以解决类组件中存在的代码复杂度、逻辑重复、难以理解和测试等问题,使得函数组件具备了类组件的能力。
常用的React Hooks有哪些?请简要介绍各个Hooks的作用。
useState:用于在函数组件中添加状态管理。
useEffect:用于在函数组件中执行副作用操作(如数据获取、订阅或手动DOM操作)。
useContext:用于在函数组件中使用上下文(Context)。
useReducer:类似于Redux中的reducer概念,用于更复杂的状态管理。
useCallback:用于缓存回调函数,避免不必要的重新渲染。
useMemo:用于缓存计算结果,避免不必要的重复计算。
什么时候应该使用useState而不是useReducer?
1、当状态更新逻辑较为简单,只需要单个状态值时,推荐使用useState。
2、当状态逻辑较为复杂,包含多个相关状态值或需要进行复杂的状态更新逻辑时,推荐使用useReducer。
如何使用useEffect Hook处理副作用?它的依赖数组是什么作用?
1、useEffect Hook接收一个回调函数作为参数,在函数组件中执行副作用操作。
2、可通过第二个参数传入依赖数组,以控制何时触发副作用操作以及清理操作。依赖数组中的变量发生变化时,useEffect会重新执行。
通过return ()=》{清理、销毁}
什么是自定义Hook?它们的优势是什么?
1、自定义Hook是由一些基础Hook组合形成的函数,用于提取和共享组件逻辑。
2、自定义Hook可以将组件逻辑抽象出来,实现逻辑复用,提高代码的可维护性和可读性。