前言
这里总结的所有面试题都是从牛客网找的各种大厂真实场景的面试题,并且做了汇总,各位看官看后做好总结,绝对可以应对88.8%React相关的面试题。
一、常用的hooks
useState(): 允许在函数组件中使用状态。使用useState() 声明一个状态变量,并使用它来存储组件的状态
。每次更改状态时,组件将重新渲染。
useEffect():用于处理副作用。副作用指在React组件之外进行的操作,例如从服务器获取数据,处理DOM元素等。使用useEffect() hook,您可以执行此类操作,而无需在类组件中编写生命周期
方法。点击去学习
useContext(): 允许您在React中使用上下文
。上下文是一种在组件树中传递数据的方法,可以避免通过Props一层层传递数据
。使用useContext() hook,您可以访问整个应用程序中定义的上下文对象。点击去学习
useReducer(): 是useState() hook的替代品,用于管理更复杂的状态
。它使用Reducer函数来管理组件状态,Reducer函数接收当前状态和要进行的操作
,然后返回新状态。详细使用方式见此文章。点击去学习
useCallback(): 用于避免在每次渲染时重新创建回调函数
。当您需要将回调函数传递给子组件时,这非常有用,因为它可以避免子组件不必要地重新渲染
。点击去学习
useMemo(): 用于缓存计算结果
,以避免在每次渲染时重新计算
。这非常有用,特别是当计算成本很高时。点击去学习
useRef(): 用于创建对DOM元素的引用
。它还可以用于存储组件之间共享的变量,这些变量不会在组件重新渲染时发生更改。点击去学习
二、类组件和函数式组件的区别
- 语法:类组件使用ES6的class语法创建组件,而函数式组件使用函数声明来创建组件。
- 状态管理:类组件可以使用state来管理组件的内部状态,而函数式组件则通常使用userState Hook来管理状态。
- 生命周期:类组件可以使用生命周期方法,如componentDidMount、componentDidUpdate等来管理组件的生命周期,而函数式组件则使用useEffect Hook来管理。
- 调用方式:如果是一个函数组件,调用则是执行函数即可,如果是一个类组件,则需要将组件进行实例化,然后调用实例对象的render方法
- 性能:函数式组件通常比类组件更轻量级,因为类组件需要实例化,而函数式组件只是普通函数调用。
三,React中的key有什么作用?
1.作用:在 React 中,key 是用来给每个组件的元素(Element)做一个唯一的标识
。当 React 更新组件的时候,它会对比新旧两个组件的 key 是否一致
,如果一致,则说明是同一个组件,直接更新它的内容即可
。如果不一致,则说明是不同的组件,需要先删除旧组件,再新建一个新的组件
并插入到 DOM 树中。文章来源:https://www.toymoban.com/news/detail-484679.html
因此,key 的作用是帮助 React 快速判断出哪些元素发生了变化,从而提高性能,避免不必要的 DOM 操作
。同时,key 也可以用来保证数组渲染时每个元素的稳定性,避免出现类似于数组元素位置发生变化但是内容没变的情况。文章来源地址https://www.toymoban.com/news/detail-484679.html
四,react中引入css的方式
-
组件中引入 .module.css 文件
使用.module.css文件来为组件引入样式,这种方式也被称为CSS模块化
。
在.module.css文件中定义的样式只能作用于当前组件内部
,不会影响到其他组件或全局样式,这样可以避免样式冲突的问题。 -
CSS in JS
CSS in JS 是一种前端开发技术,它将 CSS 样式表的定义和 JS 代码紧密结合在一起,以实现更高效、更灵活的样式控制。在 CSS in JS 中,开发者可以使用 JS 来编写 CSS 样式,可以在代码中通过变量或函数等方式来动态生成样式。这种方式可以避免传统 CSS 中的一些问题,如全局作用域、选择器嵌套、命名冲突等,同时也提供了更高的可重用性和可维护性。
在 React 中,有多种支持 CSS in JS 的第三方库,比较常用的有 styled-components、Emotion、JSS 等。这些库都提供了方便的 API 来定义和应用样式,并且可以自动管理 CSS 的引入和组件的封装。使用 CSS in JS 可以更好地与组件化开发思想结合,提高代码的可复用性和可维护性。
到了这里,关于React2023年面试题汇总~~~~持续更新中!!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!