Копирование избыточного состояния в состояние компонента - это хороший способ оптимизировать приложение реакции? - PullRequest
2 голосов
/ 24 сентября 2019

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

export class User extends React.Component {
  state = {
    user: this.props.user,
  };

  render() {
    return (
      <div>
        <input
          value={this.state.user.name}
          onChange={this.changeUserName}
        />
        <button onClick={this.saveUser}>Save</button>
      </div>
    );
  }

  userNameChange = ({target}) => {
    this.setState((prevState) => ({
      user: {
        ...prevState.user,
        name: target.value,
      },
    }));
  }

  saveUser = () => {
    const {
      userActions,
    } = this.props;

    const {
      user,
    } = this.state;

    userActions.save(user);
  }
}

const mapStateToUserProps = (state) => ({
  user: state.user,
});

const mapDispatchToUserProps = (dispatch) => ({
  userActions: bindActionCreators(UserActions, dispatch),
})

export const UserContainer = connect(mapStateToUserProps, mapDispatchToUserProps)(User);

Это предотвратит вызов селекторных переключателей.Это хороший способ оптимизировать приложение или все изменения следует вносить только в редукторы?

1 Ответ

0 голосов
/ 24 сентября 2019

Я считаю, что между ними мало что происходит, потому что, наконец, вы хотите сохранить / отредактировать свои данные, поэтому вам необходимо отправить request в конце.

Более важно создать приложение с меньшим количеством запросов, и если у вас есть большие данные, вы должны попытаться отфильтровать свои данные как можно больше в server-side.

Если у вас не будет/ измените некоторую локальную переменную, вы должны использовать состояние, в противном случае вы должны использовать redux store.

Надеюсь, это вам поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...