首页 > 解决方案 > 关于 useEffect 与 useMemo 的编码考虑

问题描述

我有一个场景,当状态发生变化时,我想输出一个简单的控制台日志消息。从性能的角度来看,我很好奇第一种方法是否比第二种方法更好。

第一的

const format = React.useMemo( () => {
  return JSON.stringify(
     QbUtils.jsonLogicFormat(
        state.queryState.tree,
        state.queryState.config),
        null,
        2)
}, [state.queryState])
console.log(format)

第二

useEffect( () => {
  console.log( 
    JSON.stringify(
      QbUtils.jsonLogicFormat(
        state.queryState.tree,
        state.queryState.config),
      null,
      2)
  )
}, [state.queryState]

我通常会使用第二个选项,它们都不是更新状态而是对状态变化做出反应。是否有性能考虑?

注意:我确实删除了错误检查以及不是为了显示代码的目的。

标签: reactjs

解决方案


推荐阅读