Destructing Στηρίγματα πολλές φορές σε React Component;

ψήφοι
1

Όταν βρίσκω τον εαυτό μου χρησιμοποιώντας το ίδιο propsσε react componentπολλές φορές (π.χ. σε διαφορετικές μέθοδοι για τη συνιστώσα) που καταλήγουν αποδόμηση τις propsπολλές φορές.

Είναι αυτή η κακή πρακτική; Θα έπρεπε να κάνω την ανάθεση της propπου είναι να αποδομείται πολλές φορές για το ίδιο το παράδειγμα αντί για (κάτι σαν this.propOfInterest = this.props.propOfInterestτο η constructor();

class MyComponent extends React.Component {
  myMethod() {
    const {
      propOfInterest,
    } = this.props

    // do something with propOfInterest
  }

  render() {
    const {
      propOfInterest,
    } = this.props

    return (
      <div className={propOfInterest}>
      </div>
    )
  }
}
Δημοσιεύθηκε 07/11/2018 στις 23:42
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
2

Αποδόμηση δεν είναι μια κακή πρακτική και δεν θα μειώσει την απόδοση με οποιοδήποτε τρόπο. Κάτω από το καπό, αν αποδομείται ή όχι, Βαβέλ θα transpile κωδικό σας στην ίδια δήλωση πριν από ομαδοποίηση.

Έτσι, βασικά,

const { propOfInterest } = this.props;

και

const propOfInterest = this.props.propOfInterest;

θα πρέπει να ομαδοποιούνται με τον ίδιο τρόπο.

Εάν αντιγράψετε αυτά τα δύο γραμμών στο διαδίκτυο transpiler Βαβέλ , θα πάρετε αυτά τα αποτελέσματα.

const { propOfInterest } = props;
const propInterest = props.propInterest;

θα έχει ως αποτέλεσμα

var _props = props,
    propOfInterest = _props.propOfInterest;
var propInterest = props.propInterest;

Μιλώντας για τις επιδόσεις, τη στιγμή που θα χρησιμοποιήσετε this, γίνεται μια μεταβλητή παράδειγμα. Και ιδανικά μεταβλητές παράδειγμα είναι απόδοση σοφό πιο αργά, σύμφωνα με τον Nicholas Ζάκας στο βιβλίο του υψηλής απόδοσης το JavaScript .

Όταν πρόκειται για στοιχεία Javascript, υπάρχει σχεδόν τέσσερις τρόποι για να αποκτήσετε πρόσβαση: κυριολεκτική τιμές, μεταβλητές, ιδιότητες αντικειμένων, καθώς και τα στοιχεία του πίνακα. Όταν σκεφτόμαστε τη βελτιστοποίηση, τη γραμματική αξίες και τις μεταβλητές εκτελούν περίπου το ίδιο, και είναι πολύ πιο γρήγορα από ό, τι ιδιότητες αντικείμενο και στοιχεία πίνακα.

Έτσι, κάθε φορά που αναφέρεστε σε ένα ακίνητο αντικείμενο ή το στοιχείο πίνακα πολλές φορές, μπορείτε να πάρετε μια αύξηση της απόδοσης ορίζοντας μια μεταβλητή. (Αυτό ισχύει τόσο για τα δεδομένα ανάγνωση και τη γραφή.)

Η εξαγωγή συμπερασμάτων από την άποψη του συγγραφέα, αποδόμηση είναι πολύ πιο γρήγορα από ό, τι την αποθήκευση των τιμών σε μια μεταβλητή περίπτωση.

Αν θα μπορούσαμε να δημιουργήσουμε ένα jsperf παράδειγμα, θα γνωρίζουμε με βεβαιότητα.

Απαντήθηκε 08/11/2018 στις 00:26
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more