So verwenden Sie React-Slots

So verwenden Sie React-Slots

brauchen

Wir haben selbst eine Komponente geschrieben. Wenn wir auf die Komponente verweisen, möchten wir Inhalt in die Komponente schreiben, und der geschriebene Inhalt kann von der Komponente erkannt und gesteuert werden. Studenten, die Vue verwendet haben, werden sicherlich sofort an Slots denken. React unterstützt auch Slots. Als Nächstes verwenden wir React, um eine Komponente zu entwickeln, die Slots unterstützt.

Kernidee

Die drei von der übergeordneten Komponente an die untergeordnete Komponente übergebenen Divs werden standardmäßig über Props an die untergeordnete Komponente übergeben, und dann können wir die Darstellung der untergeordneten Elemente in der untergeordneten Komponente steuern.

Kerncode

// 015 importiere React von „react“ unter Verwendung von Slots;
importiere ReactDOM von „react-dom“;
// Übergeordnete Komponentenklasse ParentDom erweitert React.Component {
    Konstruktor(Requisiten) {
        super(Requisiten)
        dieser.Zustand = {
            heardData: "Headerdaten",
            footData: "Bodendaten",
            contentData: "Inhaltsdaten"
        }
    }
    componentDidMount() {
    }

    rendern() {
        zurückkehren (
            <div>
                <h1>015Slots verwenden</h1>
                <Kinderdom>
                    <div data-position="heard" >Dies ist die Kopfzeile</div>
                    <div data-position="content" >Dies ist der Inhalt丨{this.state.contentData}</div>
                    <div data-position="foot" >Das ist die Unterseite</div>
                </ChildDom>
            </div>
        )
    }
}
// Untergeordnete Komponentenklasse ChildDom erweitert React.Component {        
    Konstruktor(Requisiten) {
        super(Requisiten)  
    }
    rendern() {
        lass gehört werden, Inhalt, Fuß;
        diese.Requisiten.Kinder.fürJedes(Element =>{
            wenn(item.props['data-position'] == 'gehört'){
                gehört = Artikel
            }sonst wenn(item.props['data-position'] == 'content'){
                Inhalt = Artikel
            }sonst wenn(item.props['data-position'] == 'foot'){
                Fuß = Artikel
            }
        })  
        zurückkehren (
            <div >
                <p>Ich bin eine Unterkomponente</p>
               <div Klassenname="gehört">
                   {gehört}
               </div>
               <div Klassenname="Inhalt">
                   {Inhalt}
               </div>
               <div Klassenname="Fuß">
                   {Fuß}
               </div>
            </div>
        )
    }
}

Standardfunktion exportieren () {
    ReactDOM.render(
        <ParentDom />,
        document.querySelector("#beispiel15")
    );
}

Anzeigeeffekt

Zwei Möglichkeiten zum Implementieren von Slots in React

Da der in der React-Komponente geschriebene Inhalt in Props gemountet wird, kann dies verwendet werden, um eine Slot-Funktion ähnlich der in Vue zu implementieren.

Dies ist der äußerste Code

importiere React, {Komponente} von 'react'
NavBar aus „./NavBar“ importieren
importiere NavBar2 aus './NavBar2'

exportiere Standardklasse App erweitert Komponente {
  rendern() {
    zurückkehren (
      <div>
        <Navigationsleiste>
          <span>aaa</span>
          <strong>bbb</strong>
          <a href="/#" rel="externes Nofollow" rel="externes Nofollow" >ccc</a>
        </NavBar>

        <NavBar2 linker Steckplatz={<span>aaa</span>}
        Mittelschlitz={<strong>bbb</strong>}
        Rechteslot={<a href="/#" rel="external nofollow" rel="external nofollow" >ccc</a>}/>
      </div>
    )
  }
}

1. Verwenden Sie this.props.children[index]

importiere React, {Komponente} von 'react'

importiere './style.css'
exportiere Standardklasse NavBar erweitert Komponente {
  rendern () {
    zurückkehren (
      <div Klassenname="Navigationsleiste">
        <div Klassenname="nav-links">
          {diese.props.children[0]}
        </div>
        <div Klassenname="Navigationszentrum">
          {diese.props.children[1]}
        </div>
        <div Klassenname="nav-rechts">
          {this.props.children[2]}
        </div>
      </div>
    )
  }
}

2. Verwenden Sie direkte Benennung

importiere React, {Komponente} von 'react'

importiere './style.css'
exportiere Standardklasse NavBar erweitert Komponente {
  rendern () {
    const {leftslot, centerslot,rightslot} = this.props
    zurückkehren (
      <div Klassenname="Navigationsleiste">
        <div Klassenname="nav-links">
          {linker Slot}
        </div>
        <div Klassenname="Navigationszentrum">
          {Mittelschlitz}
        </div>
        <div Klassenname="nav-rechts">
          {Rechtslot}
        </div>
      </div>
    )
  }
}

Dies ist das Ende dieses Artikels zur Verwendung von React-Slots. Weitere relevante Inhalte zu React-Slots finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Verwenden Sie den Reaktionskontext, um die Vue-Slot-Funktion zu implementieren
  • React implementiert eine Projektpraxis ähnlich den Slots in Vue

<<:  So verbergen und entfernen Sie Bildlaufleisten in HTML

>>:  So erzielen Sie mit CSS einen Daten-Hotspot-Effekt

Artikel empfehlen

Detaillierte Erklärung zur sauberen Deinstallation von Docker

Zunächst die Informationen zur Serverumgebung: Gr...

So sammeln Sie Nginx-Protokolle mit Filebeat

Mithilfe von Nginx-Protokollen lassen sich Benutz...

So fragen Sie den minimal verfügbaren ID-Wert in der MySQL-Tabelle ab

Als ich mir heute die Laborprojekte ansah, stieß ...

Zwei Implementierungslösungen für die Vuex-Datenpersistenz

Inhaltsverzeichnis Geschäftsanforderungen: Lösung...

Detaillierte Erklärung der XML-Syntax

1. Dokumentationsregeln 1. Groß-/Kleinschreibung b...

So deinstallieren Sie MySQL vollständig unter CentOS

Dieser Artikel dokumentiert die vollständige Dein...

Vue.js implementiert Musikplayer

In diesem Artikel wird der spezifische Code von V...

Detaillierte Erklärung des dynamischen Weihnachtsbaums durch JavaScript

Inhaltsverzeichnis 1. Animierter Weihnachtsbaum, ...

So legen Sie Hintergrundfarbe und Transparenz in Vue fest

Einstellungen für Hintergrundfarbe und Transparen...

Entwerfen Sie eine einfache HTML-Anmeldeoberfläche im CSS-Stil

login.html-Teil: <!DOCTYPE html> <html l...

So stellen Sie Kafka in Docker bereit

Inhaltsverzeichnis 1. Docker erstellen 2. Betrete...

Drei Möglichkeiten zum Parsen von QR-Codes mit Javascript

Inhaltsverzeichnis 1. Verwenden Sie JavaScript, u...

JS Canvas realisiert die Funktionen von Zeichenbrett und Signaturtafel

In diesem Artikel wird der spezifische Code von J...