kontextus

A kontextus a React nem dokumentált funkciója. Szólok arról, hogyan működik a v0.13.ban

környezet

Íme egy példa a kontextusra. Amikor elviszem a fiamat a nagyszüleihez, emlékeztetem őt:

A nagymama utálja a „szar” szót. Vigyázz, ne mondd ki.

Van egy kontextus, amelyben a fiam a környezetének megfelelőbb nyelvezetet használ. Ez a kontextus a nagymama háza. Azt mondja, hogy "basz?" Aha. A nagymama házában mondja? Dehogy.

Figyelem

Van egy csomó olyan eset, amikor a kontextus érvényes. Ahol nincs, az az, hogy ne kelljen gépelnie... — Sebastian Markbåge a React.js Conf 2014-ben

kontextus felhasználásával, ma

A kontextus három részből áll: getChildContextéschildContextTypes,a kezdeményező összetevőn, és contextTypes az utódkomponenseken.

getChildContext

A kontextust kezdeményező összetevőben implementálja a getChildContext parancsot:

class Chan extends React.Component {
  getChildContext() {
    return {
      environment: "grandma's house"
    }
  }
}

gyermekContextTypes

A childContextTypes segítségével beállíthatja a kontextustípust az érdeklődő gyermekek számára.

Chan.childContextTypes = {
  environment: React.PropTypes.string
};

kontextustípusok

Most gyermekeink megfigyelhetik ezt az összefüggést, és ennek megfelelően viselkedhetnek.

class ChildChan extends React.Component {
  render() {
    if (this.context.environment === "grandma's house") {
      return <span>poop</span>;
    }
    return <strong>shit</strong>;
  }
}
ChildChan.contextTypes = {
  environment: React.PropTypes.string
};

Ne használjon kontextust

Általános szabály, hogy ne nyúljon a kontextushoz. Nem nagyon használom a szövegkörnyezetet. Médialekérdezésekhez és railsEnv-hez használtam.

Legtöbbször kellékeket kell használnia.

Szeretek a kontextusra gondolni, ahogyan a médialekérdezésekre gondolok. Az alkalmazásomnak kontextus nélkül megfelelően kell futnia. De a kontextus felhasználható megfelelőbb élmény biztosítására – „kaki” vs. „szar”.

Folytasd, nebulók.

További olvasmány: kontextusegység-tesztek

Meg kell jegyezni, hogy a könyvtár kódja teljesen más dolog. Ha Ön könyvtáríró, a kontextus jó módja lehet a könyvtári adatok komponensek közötti kommunikálásának anélkül, hogy a végfejlesztőket megterhelné.