Warum getDerivedStateFromProps statt componentDidUpdate?

Als gelesen in diese Reagieren Github issue ich sehe mehr und mehr, dass

die Kosten der render() ist relativ klein

In Reagieren 16.3, ich Frage mich, warum würde man mit dem neuen getDerivedStateFromProps statt componentDidUpdate?

Vorstellen, in diesem Beispiel:

getDerivedStateFromProps(nextProps, prevState) {
  if (!prevState.isModalOpen && nextProps.isReady) {
       return { isModalOpen: true };
  }
}

versus

componentDidUpdate(prevProps, prevState) {
  if (!prevState.isModalOpen && this.props.isReady) {
        this.setState({ isModalOpen: true });
  }
}

Später scheint einfacher, nur weil es mit nur bestehende API und sieht genauso aus wie das, was wir tun, in componentWillReceiveProps, so sehe ich nicht, warum die Nutzer gehen würde, für getDerivedStateFromProps? Was ist der nutzen?

Dank!

  • Hat mich gefragt, diese als gut. Es scheint wie eine einzige bequeme Methode, tun die gleiche Logik wie bei der Initialisierung der Komponente und der update-Komponente. In Reagieren 15 ich habe geschrieben, eine Reihe von Komponenten, die Aufrufe der gleichen Funktion im Konstruktor & CWP. Wo, wie dies wirkt, daß einzelne Funktion für Sie. twitter.com/dan_abramov/status/960305777968930816
  • Ok, ich denke, du hast Recht, dies ist aufgerufen, die init -, während die cDU ist aufgerufen, nur nach dem Rendern. Aber ich glaube, der einzige Unterschied zwischen den beiden Funktionen ist, dass es 1 mehr wiedergeben, wenn Sie Dinge tun, in der cDU.
InformationsquelleAutor adriendenat | 2018-03-23
Schreibe einen Kommentar