我一直在使用 React - Redux - Typescript 堆栈一段时间,到目前为止我很喜欢它。但是,由于我对 Redux 还很陌生,因此我一直对这个特定主题感到疑惑。分派 Redux 操作(和 thunk)是否被认为是昂贵的操作,应该谨慎使用,还是应该像使用 setState 一样使用它?
假设 Redux 状态有一个管理用户信息的 reducer:
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);
}
你们有什么感想?