Maison interface Web js tutoriel Explication détaillée sur l'utilisation du slot socket du composant vue

Explication détaillée sur l'utilisation du slot socket du composant vue

Apr 20, 2018 pm 01:37 PM
slot 使用 详解

Cette fois, je vais vous apporter une explication détaillée de l'utilisation du socket slot du composant vue. Quelles sont les précautions lors de l'utilisation du socket slot du composant vue. , jetons un coup d'oeil.

Composant enfant

<template>
  <p class="slotcontent">
    <ul>
      <!--<slot></slot>-->
      <li v-for="item in items">{{item.text}}</li>
    </ul>
  </p>
</template>
<script>
  export default{
    data(){
      return{
        items:[
          {id:1,text:'第1段'},
          {id:2,text:'第2段'},
          {id:3,text:'第3段'},
        ]
      }
    }
  }
</script>
<style scoped>
</style>
Copier après la connexion

Composant parent

<template>
  <p>
    <h2>首页</h2>
    <router-link to="/home/details">跳转到详情</router-link>
    <p>父组件</p>
    <slotshow>
      <p>{{msg}}</p>
    </slotshow>
  </p>
</template>
<script>
  import slotshow from '../components/slotshow'
  export default{
    data(){
      return{
        msg:"测试内容"
      }
    },
    components:{
      slotshow
    }
  }
</script>
<style>
</style>
Copier après la connexion

Cette situation est Si vous souhaitez que le composant parent insère du contenu dans le composant enfant, vous devez déclarer la balise slot dans le composant enfant. Si le modèle de composant enfant ne contient pas le socket <slot>, le contenu du composant parent &lt;p&gt;{{msg}}&lt;/p&gt; sera écarté. <;p>Valeur par défaut</p> (la balise p sera supprimée), lorsque l'emplacement a une valeur par défaut et que l'élément parent a du contenu à insérer dans <child>, la valeur définie dans le composant parent sera affiché, l'élément

&lt;slotshow&gt;&lt;/slotshow&gt;

Emplacement nommé

<slot> peut utiliser un attribut

spécial pour configurer la façon dont le contenu est distribué. Plusieurs emplacements peuvent avoir des noms différents. Un emplacement nommé fera correspondre les éléments avec l'attribut d'emplacement correspondant dans le fragment de contenu

var childNode = {
 template: `
 &lt;p class=&quot;child&quot;&gt;
 &lt;p&gt;子组件&lt;/p&gt;
 &lt;slot name=&quot;my-header&quot;&gt;头部默认值&lt;/slot&gt;
 &lt;slot name=&quot;my-body&quot;&gt;主体默认值&lt;/slot&gt;
 &lt;slot name=&quot;my-footer&quot;&gt;尾部默认值&lt;/slot&gt;
 &lt;/p&gt;
 `,
};
var parentNode = {
 template: `
 &lt;p class=&quot;parent&quot;&gt;
 &lt;p&gt;父组件&lt;/p&gt;
 &lt;child&gt;
 &lt;p slot=&quot;my-header&quot;&gt;我是头部&lt;/p&gt;
 &lt;p slot=&quot;my-footer&quot;&gt;我是尾部&lt;/p&gt;
 &lt;/child&gt;
 &lt;/p&gt;
 `,
 components: {
 'child': childNode
 },
};
Copier après la connexion

Il peut toujours y avoir un emplacement anonyme, qui est l'emplacement par défaut, car aucune correspondance le contenu est trouvé Emplacement alternatif pour les fragments. Les emplacements anonymes ne peuvent être utilisés que comme emplacements pour les éléments sans attributs d'emplacement. Les éléments avec des attributs d'emplacement seront ignorés si aucun emplacement n'est configuré

var childNode = {
 template: `
 &lt;p class=&quot;child&quot;&gt;
 &lt;p&gt;子组件&lt;/p&gt;
 &lt;slot name=&quot;my-body&quot;&gt;主体默认值&lt;/slot&gt;
 &lt;slot&gt;&lt;/slot&gt;
 &lt;/p&gt;
 `,
};
var parentNode = {
 template: `
 &lt;p class=&quot;parent&quot;&gt;
 &lt;p&gt;父组件&lt;/p&gt;
 &lt;child&gt;
 &lt;p slot=&quot;my-body&quot;&gt;我是主体&lt;/p&gt;
 &lt;p&gt;我是其他内容&lt;/p&gt;
 &lt;p slot=&quot;my-footer&quot;&gt;我是尾部&lt;/p&gt;
 &lt;/child&gt;
 &lt;/p&gt;
 `,
 components: {
 'child': childNode
 },
};
&lt;p slot=&quot;my-body&quot;&gt;插入&lt;slot name=&quot;my-body&quot;&gt;中,&lt;p&gt;我是其他内容&lt;/p&gt;插入&lt;slot&gt;中,而&lt;p slot=&quot;my-footer&quot;&gt;被丢弃
Copier après la connexion

S'il n'y a pas d'emplacement par défaut. , ces fragments de contenu qui ne trouvent pas de correspondance seront également supprimés

var childNode = {
 template: `
 &lt;p class=&quot;child&quot;&gt;
 &lt;p&gt;子组件&lt;/p&gt;
 &lt;slot name=&quot;my-body&quot;&gt;主体默认值&lt;/slot&gt;
 &lt;/p&gt;
 `,
};
var parentNode = {
 template: `
 &lt;p class=&quot;parent&quot;&gt;
 &lt;p&gt;父组件&lt;/p&gt;
 &lt;child&gt;
 &lt;p slot=&quot;my-body&quot;&gt;我是主体&lt;/p&gt;
 &lt;p&gt;我是其他内容&lt;/p&gt;
 &lt;p slot=&quot;my-footer&quot;&gt;我是尾部&lt;/p&gt;
 &lt;/child&gt;
 &lt;/p&gt;
 `,
 components: {
 'child': childNode
 },
};
&lt;p&gt;我是其他内容&lt;/p&gt;和&lt;p slot=&quot;my-footer&quot;&gt;都被抛弃
Copier après la connexion

Emplacement de portée

Un slot scoped est un type spécial de slot utilisé pour remplacer un élément rendu par un modèle réutilisable qui peut lui transmettre des données.

Dans le composant enfant, transmettez simplement les données à l'emplacement, tout comme en passant des accessoires au composant

Dans le parent, le <template> avec l'attribut spécial scope The ; L'élément doit être présent pour indiquer qu'il s'agit d'un modèle pour un emplacement de portée. La valeur de scope correspond à un

nom de variable temporaire
&lt;span style=&quot;font-size: 16px&quot;&gt;&lt;p class=&quot;child&quot;&gt;
 &lt;slot text=&quot;hello from child&quot;&gt;&lt;/slot&gt;
&lt;/p&gt;&lt;/span&gt;, qui reçoit l'objet props transmis par le composant enfant </p>
<p style="text-align: left;"><a href="http://www.php.cn/code/5707.html" target="_blank"></a>Si le résultat ci-dessus est rendu, la sortie obtenue est </p>
<pre class="brush:php;toolbar:false">var &lt;span style=&quot;color: #ffffff&quot;&gt;childNode&lt;/span&gt; = {
 template: `
 &lt;p class=&quot;child&quot;&gt;
 &lt;p&gt;子组件&lt;/p&gt;
 &lt;slot xxx=&quot;hello from child&quot;&gt;&lt;/slot&gt;
 &lt;/p&gt;
 `,
};
var parentNode = {
 template: `
 &lt;p class=&quot;parent&quot;&gt;
 &lt;p&gt;父组件&lt;/p&gt;
 &lt;child&gt;
 &lt;template scope=&quot;props&quot;&gt;
 &lt;p&gt;hello from parent&lt;/p&gt;
 &lt;p&gt;{{ props.xxx }}&lt;/p&gt;
 &lt;/template&gt;
 &lt;/child&gt;
 &lt;/p&gt;
 `,
 components: {
 'child': childNode
 },
};
Copier après la connexion

[

ListGroup

piece]Un cas d'utilisation plus représentatif des emplacements limités est Composant de liste, permettant au composant de personnaliser la façon dont chaque élément de la liste doit être rendu

var childNode = {
 template: `
 &lt;ul&gt;
 &lt;slot name=&quot;item&quot; v-for=&quot;item in items&quot; :text=&quot;item.text&quot;&gt;默认值&lt;/slot&gt;
 &lt;/ul&gt;
 `,
 data(){
 return{
 items:[
 {id:1,text:'第1段'},
 {id:2,text:'第2段'},
 {id:3,text:'第3段'},
 ]
 }
 }
};
var parentNode = {
 template: `
 &lt;p class=&quot;parent&quot;&gt;
 &lt;p&gt;父组件&lt;/p&gt;
 &lt;child&gt;
 &lt;template slot=&quot;item&quot; scope=&quot;props&quot;&gt;
 &lt;li&gt;{{ props.text }}&lt;/li&gt;
 &lt;/template&gt;
 &lt;/child&gt;
 &lt;/p&gt;
 `,
 components: {
 'child': childNode
 },
};
Copier après la connexion
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour un contenu plus passionnant, veuillez prêter attention à php Chinois Autres articles connexes en ligne !

Lecture recommandée :

Explication détaillée du chargement paresseux de vue-router (avec code)

Comment référencer le code de vérification dans le projet Vue

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Musée de deux points: Guide de localisation de Bungle Wasteland
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quel logiciel est CrystalDiskmark ? -Comment utiliser crystaldiskmark ? Quel logiciel est CrystalDiskmark ? -Comment utiliser crystaldiskmark ? Mar 18, 2024 pm 02:58 PM

Quel logiciel est CrystalDiskmark ? -Comment utiliser crystaldiskmark ?

Explication détaillée de l'obtention des droits d'administrateur dans Win11 Explication détaillée de l'obtention des droits d'administrateur dans Win11 Mar 08, 2024 pm 03:06 PM

Explication détaillée de l'obtention des droits d'administrateur dans Win11

Comment télécharger foobar2000 ? -Comment utiliser foobar2000 Comment télécharger foobar2000 ? -Comment utiliser foobar2000 Mar 18, 2024 am 10:58 AM

Comment télécharger foobar2000 ? -Comment utiliser foobar2000

Comment utiliser NetEase Mailbox Master Comment utiliser NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

Comment utiliser NetEase Mailbox Master

Comment utiliser l'application Baidu Netdisk Comment utiliser l'application Baidu Netdisk Mar 27, 2024 pm 06:46 PM

Comment utiliser l'application Baidu Netdisk

Explication détaillée du fonctionnement de la division dans Oracle SQL Explication détaillée du fonctionnement de la division dans Oracle SQL Mar 10, 2024 am 09:51 AM

Explication détaillée du fonctionnement de la division dans Oracle SQL

Tutoriel BTCC : Comment lier et utiliser le portefeuille MetaMask sur l'échange BTCC ? Tutoriel BTCC : Comment lier et utiliser le portefeuille MetaMask sur l'échange BTCC ? Apr 26, 2024 am 09:40 AM

Tutoriel BTCC : Comment lier et utiliser le portefeuille MetaMask sur l'échange BTCC ?

Vous apprendre à utiliser les nouvelles fonctionnalités avancées d'iOS 17.4 « Protection des appareils volés » Vous apprendre à utiliser les nouvelles fonctionnalités avancées d'iOS 17.4 « Protection des appareils volés » Mar 10, 2024 pm 04:34 PM

Vous apprendre à utiliser les nouvelles fonctionnalités avancées d'iOS 17.4 « Protection des appareils volés »

See all articles