передача всего объекта в виде зависимости от массива и требуемых свойств в перехватах

#reactjs

#reactjs

Вопрос:

У меня есть простое сомнение в реакции. Когда я перехожу в react, в некоторых ресурсах люди передают весь объект как зависимость от массива, а в некоторых он будет передавать только требуемые.

Для примера у меня есть такой объект

 const {id, name, number, date} = data
 

В некоторых ресурсах передаются только требуемые значения массива, но в некоторых других ресурсах они передают весь объект

 useEffect(() => {
   setState({userId: id, userName: name, userNumber: number})
}, [id, name, number])
 

Или

 useEffect(() => {
   setState({userId: id, userName: name, userNumber: number})
}, [data])
 

Какой правильный подход, второй способ намного чище, но поскольку свойство date не оказывает никакого влияния, должны ли мы следовать ему или использовать первый подход? Помимо этого, есть ли какие-либо проблемы с производительностью или какие-либо другие последствия для разных типов перехватов?

Комментарии:

1. Зависит от ситуации. useEffect не выполняет глубокого сравнения (следовательно, существуют такие вещи, как use-deep-compare-effect), которые могут иметь или не иметь значения.

2. Что-то вроде этого @DaveNewton github.com/kentcdodds/use-deep-compare-effect это не так. Также, если это так, нужно ли мне использовать useEffect или тот, который вы упомянули для такого объекта? Я был смущен, так как это объект