Я пытаюсь реализовать shouldComponentUpdate()
для повышения производительности моего приложения.
Обычно компонент перерисовывается каждый раз, когда пользователь изменяет значение поля ввода.Значения полей хранятся так:
{
inputs: {
fieldName1: {
value: '',
isInvalid: false
}
fieldName2: {
value: '',
isInvalid: false
}
fieldName3: {
value: '',
isInvalid: false
}
}
}
Я не хочу, чтобы компонент обновлялся при изменении значений полей.Поэтому я придумал следующее:
shouldComponentUpdate(nextProps) {
//The inputs object inside the state is passed down in form of a property called state
const { state } = this.props;
for (let key in state) {
if (state[key].value !== nextProps.state[key].value) return false;
}
return true;
}
Это работает просто отлично, но я боюсь, что использование цикла for...in
внутри shouldComponentUpdate()
может вызвать проблемы с производительностью.Это правда?Если так, что я должен сделать в качестве альтернативы?
Заранее спасибо
(Если кому-то нужно внимательно изучить это, пожалуйста, посетите мой репо: https://github.com/WebDeg-Brian/static-eagle-nest)