react中常用的hooks?

文章目录

  • 前言
  • useState
  • useEffect
  • useContext
  • useReducer
  • useCallback
  • useMemo
  • useRef
  • 后言

前言

hello world欢迎来到前端的新世界


当前文章系列专栏:react.js
‍博主在前端领域还有很多知识和技术需要掌握,正在不断努力填补技术短板。(如果出现错误,感谢大家指出)
感谢大家支持!您的观看就是作者创作的动力

useState

介绍

useState: useState是最常用的Hook之一,它用于在函数组件中添加状态管理。它返回一个由当前状态值和更新状态值的函数组成的数组。可以使用解构赋值来获取这两个值。

如何使用?

const [state, setState] = useState(initialState);

扩展面试题

  • react中的useState为什么是一个数组,而不是一个对象?
  • useState和useReducer的区别?

useEffect

介绍

useEffect用于在函数组件中执行副作用操作(如订阅、数据获取、DOM操作等)。它接收一个回调函数和一个依赖数组作为参数。依赖数组是可选的,用于指定副作用操作所依赖的值,当依赖发生变化时,会重新执行回调函数。

如何使用?

useEffect(() => {
  // 副作用操作
  return () => {
    // 清理操作
  };
}, [dependencies]);

扩展面试题

  • useEffect导致的闭包陷阱,如何解决?
  • useEffect如何模拟生命周期?
  • useEffect的第二个参数传递空数组和传递依赖数据有什么区别?
  • useEffect的执行时机?

useContext

介绍

useContext用于在函数组件中访问React上下文(Context)。它接收一个上下文对象(通过React.createContext创建),并返回上下文的当前值。

如何使用?

const value = useContext(MyContext);

扩展面试题

  • useContext的流程?
  • useContext是怎么实现的?
  • useContext的应用场景

useReducer

介绍

useReducer用于在函数组件中实现复杂的状态逻辑。它接收一个reducer函数和初始状态,并返回当前状态和dispatch函数。reducer函数负责根据不同的动作类型更新状态。

如何使用?

const [state, dispatch] = useReducer(reducer, initialState);

扩展面试题

  • useReducer的使用场景
  • useReducer相比于useState的优势?
  • useReducer的实现原理?

useCallback

介绍

useCallback用于在函数组件中缓存回调函数,以避免不必要的重新渲染。它接收一个回调函数和依赖数组,当依赖发生变化时,会返回一个新的回调函数。

如何使用?

const memoizedCallback = useCallback(() => {
  // 回调函数逻辑
}, [dependencies]);

扩展面试题

  • useCallback和useMemo的区别?
  • useCallback除了缓存回调函数还可以做什么操作?
  • 为什么使用useCallback不使用useMemo?

useMemo

介绍

useMemo用于在函数组件中缓存计算结果,以避免不必要的重复计算。它接收一个回调函数和依赖数组,当依赖发生变化时,会重新计算并返回新的值。

如何使用?

const memoizedValue = useMemo(() => {
  // 计算值的逻辑
  return computedValue;
}, [dependencies]);

扩展面试题

  • React.Memo和useMemo的区别?
  • useMemo可以用来做计算属性吗?
  • useMemo返回的参数有记忆性吗?

useRef

介绍

useRef用于在函数组件中存储可变值的引用。它返回一个可变的ref对象,可以在组件的生命周期中保持不变。

如何使用?

const refContainer = useRef(initialValue);

扩展面试题

  • useRef的应用场景?
  • useRef可以用来获取子组件的方法吗?
  • useRef可以用来获取dom节点吗?

后言

创作不易,要是本文章对广大读者有那么一点点帮助 不妨三连支持一下,您的鼓励就是博主创作的动力

你可能感兴趣的:(React.js,react.js,前端,前端框架)