Heim > Web-Frontend > js-Tutorial > Detaillierte Erläuterung der Schritte zur Verwendung von Slots zur Verteilung von Inhalten mithilfe von Vue-Komponenten

Detaillierte Erläuterung der Schritte zur Verwendung von Slots zur Verteilung von Inhalten mithilfe von Vue-Komponenten

php中世界最好的语言
Freigeben: 2018-05-25 15:28:20
Original
1755 Leute haben es durchsucht

Dieses Mal erkläre ich Ihnen ausführlich die Schritte zur Verwendung von Slots zum Verteilen von Inhalten in Vue-Komponenten. Was sind die Vorsichtsmaßnahmen für die Verwendung von Slots zum Verteilen von Inhalten in Vue-Komponenten? Werfen wir einen Blick darauf.

1. Was ist Slot

Bei der Verwendung von Komponenten müssen wir diese oft so kombinieren:

<app>
 <app-header></app-header>
 <app-footer></app-footer>
</app>
Nach dem Login kopieren

Wann Wenn Sie Komponenten in Kombination verwenden und den Inhalt der übergeordneten Komponente und die Vorlage der untergeordneten Komponente mischen müssen, werden Slots verwendet. Dieser Vorgang wird als Inhaltsverteilung (Transklusion) bezeichnet.

Beachten Sie zwei Punkte:

1. Die <-Komponente weiß nicht, was ihr Mountpunkt enthalten wird. Der Inhalt des Mount-Punkts wird durch die übergeordnete Komponente von bestimmt.

2. Die -Komponente wird höchstwahrscheinlich eine eigene Vorlage haben.

Requisiten übertragen Daten, Ereignisse lösen Ereignisse aus und Slot-Inhaltsverteilung bilden die drei API-Quellen der Vue-Komponenten. Unabhängig davon, wie komplex die Komponente ist, besteht sie auch aus diesen drei Teilen.

2. Geltungsbereich

<child-component>
 {{ message }}
</child-component>
Nach dem Login kopieren

Die Nachricht hier ist ein Slot, aber sie ist an die Daten der übergeordneten Komponente gebunden, nicht an die Komponente Die Daten von .

Der Inhalt der übergeordneten Komponentenvorlage wird im übergeordneten Komponentenbereich kompiliert, und der Inhalt der untergeordneten Komponentenvorlage wird im untergeordneten Komponentenbereich kompiliert. Zum Beispiel:

   <p id="app15">
      <child-component v-show="showChild"></child-component>
    </p>
Vue.component('child-component',{
  template: '<p>子组件</p>'
});
var app15 = new Vue({
  el: '#app15',
  data: {
    showChild: true
  }
});
Nach dem Login kopieren

Der statusshowChild ist hier an die Daten der übergeordneten Komponente gebunden. Wenn Sie ihn an die untergeordnete Komponente binden möchten, sollte er lauten:

    <p id="app15">
      <child-component></child-component>
    </p>
Vue.component('child-component',{
  template: '<p v-show="showChild">子组件</p>',
  data: function(){
    return {
      showChild: true
    }
  }
});
Nach dem Login kopieren

Daher ist der nach Slot verteilte Inhalt auf die übergeordnete Komponente beschränkt.

3. Slot-Nutzung

3.1 Einzelner Slot

Verwenden Sie spezielle Slots in Unterkomponenten Das -Element kann einen Slot für diese Unterkomponente öffnen. In der übergeordneten Komponentenvorlage ersetzt der gesamte in das Unterkomponenten-Tag eingefügte Inhalt das -Tag. Das Rendering-Ergebnis von

 <p id="app16">
      <my-component16>
        <p>分发的内容</p>
        <p>更多分发的内容</p>
      </my-component16>
    </p>
Vue.component('my-component16',{
  template: '<p>' +
        '<slot><p>如果父组件没有插入内容,我将作为默认出现<</p></slot>' +    //预留的slot插槽
       '</p>'
});
var app16 = new Vue({
  el: '#app16'
});
Nach dem Login kopieren

ist:

<p id=”app16”>
  <p>
    <p>分发的内容<p>
    <p>更多分发的内容<p>
  </p>
</p>
Nach dem Login kopieren

Ein -Element ist in der Vorlage der untergeordneten Komponente child-component definiert und ein

wird als Standardinhalt verwendet. der nicht im übergeordneten Komponentenslot verwendet wird, wird dieser Standardtext gerendert; wenn Slot geschrieben wird, wird der gesamte ersetzt.

3.2 Benannter Slot

Nachdem dem -Element ein Name zugewiesen wurde, können mehrere Inhalte verteilt werden und der benannte Slot kann mit einem einzelnen Slot koexistieren. Das Rendering-Ergebnis von

  <p id="app17">
      <my-component17>
        <h3 slot="header">标题</h3>
        <p>正文内容</p>
        <p>更多正文内容</p>
        <h3 slot="footer">底部信息</h3>
      </my-component17>
    </p>
Vue.component('my-component17',{
  template: '<p class="container">' +
         '<p class="header">' +
          '<slot name="header"></slot>' +
         '</p>' +
         '<p class="main">' +
          '<slot></slot>' +
         '</p>'+
         '<p class="footer">' +
          '<slot name="footer"></slot>' +
         '</p>'+
       '</p>'
});
var app17 = new Vue({
  el: '#app17'
});
Nach dem Login kopieren

lautet:

 <p id="app17">
        <p class="container">
          <p class="header">
            <h3>标题</h3></p>
          <p class="main"> 
            <p>正文内容</p> 
            <p>更多正文内容</p> 
          </p>
          <p class="footer">
            <h3>底部信息</h3>
          </p>
        </p>
      </p>
Nach dem Login kopieren

3 -Elemente werden in der Unterkomponente deklariert, von denen das in

Wenn der standardmäßige anonyme Slot nicht angegeben ist, ist er redundant Inhaltsfragmente in der übergeordneten Komponente werden verworfen.

4. Scope-Slot

Scope-Slot ist ein spezieller Slot, der eine wiederverwendbare Vorlage verwendet Ersetzen Sie es.

Sehen Sie sich ein Beispiel an:  

 <p id="app18">
      <my-component18>
        <template scope="props">
          <p>来自父组件的内容</p>
          <p>{{props.msg}}</p>
        </template>
      </my-component18>
    </p>
Vue.component('my-component18',{
  template: '<p class="container"><slot msg="来自子组件的内容"></slot></p>'
});
var app18 = new Vue({
  el: '#app18'
});
Nach dem Login kopieren

Beobachten Sie die Vorlage der Unterkomponente, es gibt eine requisitenähnliche Schreibmethode zum Übergeben von Daten an die Komponente < ;slot> msg="xxx", Die Daten werden an den Slot übergeben. Die übergeordnete Komponente

verwendet das Attribut scope=”props ” > Variable , genau wie Die Elemente darin sind gleich, und auf die Datennachricht aus dem Unterkomponenten-Slot kann über die temporären Variablen-Requisiten in der Vorlage v-for= ” item in items

Werfen wir einen Blick auf die Verwendung von Slots in der Vue-Komponente Machen Sie die Komponente hauptsächlich skalierbarer Verwenden Sie anonyme Slots

2. Fügen Sie dem Slot einen Namen hinzu

Wenn Sie der Komponente mit Slot keine Tags hinzufügen, wird im Slot nichts angezeigt.

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

So erstellen Sie ein Vue2.0+Boostrap-Projekt

So ersetzen Sie Webpack-Module im laufenden Betrieb

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zur Verwendung von Slots zur Verteilung von Inhalten mithilfe von Vue-Komponenten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage