Спасибо за ваши ответы! Это невероятно полезно.
некоторое время использую стек React - Redux - Typescript, и мне это до сих пор нравится. Тем не менее, так как я довольно новичок в Redux, меня интересует эта конкретная тема.Считается ли диспетчеризация действий Redux (и thunks) дорогостоящими операциями и должна использоваться экономно, или она должна использоваться так же, как setState?
Допустим, состояние Redux имеет единственный редуктор, который управляет пользовательской информацией:
const initialState = {
firstName: '',
lastName: ''
}
И чтобы изменить эти поля, скажем, у нас есть такие действия, какsetFirstName
, setLastName
и т.д ... просто для простоты.
И скажем, в представлении у меня есть элемент ввода вrender()
:
<input onChange={this.firstNameInputChangeListener} placeholder="First Name"/>
принимая во вниманиеsetFirstName
был сопоставлен с компонентом:
export default connect(state => state, { setFirstName })(ThisComponent);
Оптимально ли отправлять действие каждый раз при изменении ввода:
public firstNameInputChangeListener = (event) => {
this.props.setFirstName(event.target.value);
}
Или лучше создать локальное состояние компонента, связать состояние с прослушивателем изменений и отправлять действие только при отправке формы:
public state = {
firstName: this.props.firstName;
}
public firstNameInputChangeListener = (event) => {
this.setState({ firstName: event.target.value });
}
public submitButtonListener = (event) => {
this.props.setFirstName(this.state.firstName);
}
Что вы ребята думаете?