我已经使用 React - Redux - Typescript 堆栈有一段时间了,到目前为止我很喜欢它。然而,由于我对 Redux 还很陌生,所以我一直想知道这个特定的话题。调度 Redux 操作(和 thunk)是否被认为是昂贵的操作并且应该谨慎使用,还是应该像使用 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);
}
你们有什么感想?