Рассмотрение кодирования в зависимости от эффекта использования против useMemo

#reactjs

Вопрос:

У меня есть сценарий, в котором я хочу вывести простое сообщение журнала консоли, когда что-то изменится в состоянии. Мне любопытно, лучше ли первый подход с точки зрения производительности, чем второй.

Первый

 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]
 

Я бы обычно использовал второй вариант, и ни один из них не обновляет состояние, а реагирует на изменение состояния. Существует ли соображение о производительности ?

Примечание: Я действительно удалил проверку ошибок, а что нет, для того, чтобы показать код.