Destrukci Stojky vícekrát Reagovat komponenty?

hlasů
1

Když jsem se ocitl používat stejná propsběhem react componentněkolikrát (například v rámci různých metod na komponentu) skončím rozrušující na propsvícekrát.

Je to špatná praxe? Měl bych se přiřadí prop, který je odbourání vícekrát instance samotné místo (něco jako this.propOfInterest = this.props.propOfInterestv 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>
    )
  }
}
Položena 07/11/2018 v 23:42
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
2

Rozrušující není špatná praxe a nebude snižovat výkon v žádném případě. Pod kapotou, ať už destructure nebo ne, Babel bude transpile kódu do stejné prohlášení před svazování.

Takže,

const { propOfInterest } = this.props;

a

const propOfInterest = this.props.propOfInterest;

bude dodáván stejným způsobem.

Pokud zkopírujete tyto dvě linky do on-line Babel transpiler , dostanete tyto výsledky.

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

bude mít za následek

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

Hovoříme-li o výkon, moment použít this, to se stává proměnnou instance. A ideálně instance proměnné jsou výkon moudrý pomalejší podle Nicholas Zakas ve své knize High Performance JavaScript .

Když jde o údaje JavaScript, tam je docela hodně čtyři způsoby přístupu k němu: doslovné hodnoty, proměnné, vlastnosti objektu a pole položky. Když hovoříme o optimalizaci, doslovné hodnoty a proměnné provést zhruba stejná, a jsou výrazně rychlejší než vlastnosti objektu a pole položky.

Takže pokaždé, když odkazovat vlastnost objektu nebo položky pole vícekrát, můžete získat zvýšení výkonu definováním proměnné. (To platí jak pro čtení a zápis dat.)

Vyvozování závěrů z autorova pohledu, rozrušující je mnohem rychlejší než ukládání hodnot do proměnné instance.

Kdyby se nám podařilo vytvořit jsperf příklad, budeme s jistotou vědět.

Odpovězeno 08/11/2018 v 00:26
zdroj uživatelem

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