A bővítőhelyek megkönnyítik az adatok egyik komponensből a másikba való átvitelét. Ismerje meg, hogyan kezdje el használni őket dinamikus összetevők létrehozásához.

A Svelte különféle módokat kínál az összetevők egymás közötti kommunikációjára, beleértve a kellékeket, bővítőhelyeket stb. Svelte alkalmazásaiban rugalmas és újrafelhasználható komponensek létrehozásához nyílásokat kell integrálnia.

A nyerőgépek megértése a Svelte-ben

Behelyezhető a Svelte keret hasonlóan működnek slot a Vue-ban. Módot biztosítanak a tartalom átadására a szülőtől a gyermek összetevőhöz. A résekkel helyőrzőket határozhat meg az összetevő sablonján belül, ahol tartalmat szúrhat be egy szülőkomponensből.

Ez a tartalom lehet egyszerű szöveg, HTML jelölés, vagy más Svelte alkatrészeket. A slotokkal való munka lehetővé teszi, hogy nagymértékben testreszabható és dinamikus komponenseket hozzon létre, amelyek alkalmazkodnak a különböző felhasználási esetekhez.

Basic Slot létrehozása

Egy slot létrehozásához a Svelte-ben használja a

instagram viewer
rés elemet az összetevő sablonjában. A rés elem a szülőkomponensből átadandó tartalom helyőrzője. Alapértelmezés szerint a slot minden neki átadott tartalmat megjelenít.

Íme egy példa az alap slot létrehozására:

<main>
This is the child component
<slot>slot>
main>

A fenti kódblokk egy olyan gyermekkomponenst jelöl, amely a slot elemet használja a tartalom lekérésére a szülőkomponenstől.

Ha tartalmat szeretne átadni egy szülőkomponensből egy alárendelt összetevőnek, először importálja az alárendelt összetevőt a szülőkomponensbe. Ezután ahelyett, hogy önzáró címkét használna az utódkomponens megjelenítéséhez, használjon nyitó és záró címkét. Végül az összetevő címkéibe írja be azt a tartalmat, amelyet át szeretne adni a szülő-gyermek összetevőből.

Például:

<script>
import Component from "./Component.svelte";
script>

<main>
This is the parent component
<Component>
<span>This is a message from the parent componentspan>
Component>
main>

Amellett, hogy tartalmat továbbít a szülő-gyermek összetevők között, tartalék/alapértelmezett tartalmat is megadhat a helyeken. Ez a tartalom az, amit a slot megjelenít, ha a szülőkomponens nem ad át semmilyen tartalmat.

A következőképpen adhat át tartalék tartalmat:

<main>
This is the child component
<slot>Fallback Contentslot>
main>

Ez a kódblokk a „Tartaléktartalom” szöveget biztosítja tartalék tartalomként a hely számára, amely akkor jelenik meg, ha a szülőkomponens nem biztosít tartalmat.

Adatok továbbítása a nyílások között slot kellékekkel

A Svelte lehetővé teszi az adatok továbbítását a nyílásokhoz a slot kellékek segítségével. A helytámaszokat olyan helyzetekben használja, amikor bizonyos adatokat szeretne átadni a gyermekkomponensből a behelyezett tartalomnak.

Például:

<script>
let message = 'Hello Parent Component!'
script>

<main>
This is the child component
<slotmessage={message}>slot>
main>

A fenti kódblokk egy Svelte komponenst képvisel. Belül forgatókönyv tag, akkor deklarálod a változót üzenet és rendelje hozzá a "Hello Parent Component!" hozzá. Az üzenetváltozót is átadja a slot propnak üzenet. Ez elérhetővé teszi az üzenetadatokat a szülőkomponens számára, amikor tartalmat szúr be ebbe a nyílásba.

<script>
import Component from "./Component.svelte";
script>

<main>
This is the parent component
<Componentlet: message>
<div>
The child component says {message}
div>
Component>
main>

A hadd: üzenet szintaxisa lehetővé teszi, hogy a szülőkomponens hozzáférjen a üzenet nyílástámasz, amelyet a gyermekkomponens biztosít. A div címkék üzenet változó a üzenet slot prop.

Ne feledje, hogy Ön nem korlátozódik egyetlen slot támaszra, szükség szerint több nyílástámaszt is átadhat:

<script>
let user = {
firstName: 'John',
lastName: 'Doe'
};
script>

<main>
This is the child component
<slotfirstName={user.firstName}lastName={user.lastName}>slot>
main>

A szülő komponensben:

<script>
import Component from "./Component.svelte";
script>

<main>
This is the parent component
<Componentlet: firstNamelet: lastName>
<div>
The user's name is {firstName} {lastName}
div>
Component>
main>

Munka elnevezett slotokkal

Használhat elnevezett réseket, ha több helyet szeretne átadni az összetevőkben. Az elnevezett slotok megkönnyítik a különféle slotok kezelését, mivel minden egyes slotnak egyedi nevet adhatunk. Az elnevezett nyílásokkal összetett, változó elrendezésű összetevőket készíthet.

Egy elnevezett slot létrehozásához adja át a név támasz a rés elem:

<div>
This is the child component

<p>Header: <slotname='header'>slot>p>
<p>Footer: <slotname='footer'>slot>p>
div>

Ebben a példában két elnevezett slot van, a slot neve fejléc és a nevezett slot lábléc. Használni a rés prop, átadhat tartalmat az egyes helyekre a szülőkomponensből.

Például:

<script>
import Component from "./Component.svelte";
script>

<main>
This is the parent component
<Component>
<spanslot="header">This will be passed to the header slotspan>
<spanslot="footer">This will be passed to the footer slotspan>
Component>
main>

Ez a kód bemutatja, hogyan használja a rés prop a tartalom átadásához a megnevezett helyekre. Az elsőben span címke, átadja a rés kellék az értékkel fejléc. Ez biztosítja, hogy a szöveg a span címke a fejléc rés. Hasonlóképpen a szöveg a span címkével a rés kellék értéke lábléc a lábléc rés.

A Slot Forwarding megértése

A réstovábbítás a Svelte egy olyan funkciója, amely lehetővé teszi, hogy tartalmat továbbítson a szülőkomponensből egy burkolókomponensen keresztül a gyermekkomponensbe. Ez nagyon hasznos lehet olyan esetekben, amikor nem kapcsolódó összetevőkből kíván tartalmat átadni.

Íme egy példa a helytovábbítás használatára, először hozza létre a gyermekkomponenst:

<main>
This is the child component
<slotname="message">slot>
main>

Ezután hozza létre a burkoló komponenst:

<script>
import Component from "./Component.svelte";
script>

<main>
<Component>
<divslot='message'>
<slotname="wrapperMessage">slot>
div>
Component>
main>

Ebben a kódblokkban egy másik elnevezett nyílást ad át a üzenet a gyermekkomponens nyílása.

Ezután a szülőkomponensbe írja be ezt a kódot:

<script>
import Wrapper from "./Wrapper.svelte";
script>

<main>
This is the parent component
<Wrapper>
<divslot="wrapperMessage">
This is from the parent component
div>
Wrapper>
main>

A fenti struktúrában az „Ez a szülőkomponensből származik” tartalom átkerül a burkolókomponensen és közvetlenül a gyermekkomponensbe, köszönhetően a wrapperMessage nyílás a csomagolóelem belsejében.

Tegye könnyebbé életét a karcsú nyerőgépekkel

A bővítőhelyek a Svelte hatékony funkciója, amely lehetővé teszi, hogy nagymértékben testreszabható és újrafelhasználható összetevőket hozzon létre. Megtanulta az alap slotok létrehozását, a slotok elnevezését, a slot kellékek használatát stb. A különböző típusú slotok és azok használatának megértésével dinamikus és rugalmas felhasználói felületeket hozhat létre.