Sloty w Vue.js: przekazywanie treści do komponentów

Sloty w Vue.js: przekazywanie treści do komponentów

Witaj w naszym kompletnym przewodniku po slotach w Vue.js. Vue.js to popularny framework JavaScriptu do budowania aplikacji webowych. Daje wiele mechanizmów, które przyspieszają i ułatwiają pracę, a sloty są jednym z nich.

Sloty to mocny sposób na współdzielenie treści między komponentami. Pozwalają bez wysiłku wykorzystać ponownie fragmenty HTML-a i wstawić je w inne miejsca aplikacji.

Czym jest slot?

Slot to specjalny element komponentu Vue.js, który wyznacza miejsce na treść wstrzykiwaną z zewnątrz. Przydaje się, gdy chcesz używać tego samego komponentu w różnych częściach aplikacji, ale z inną zawartością.

Weźmy komponent, który renderuje przycisk. Jeśli chcesz go użyć w kilku miejscach aplikacji, za każdym razem z innym napisem, slot pozwoli ci wstrzyknąć tę konkretną treść przy każdym użyciu.

Jak używać slotów?

Żeby skorzystać ze slotów, najpierw zadeklaruj slot w komponencie nadrzędnym. Służy do tego taka składnia:

javascript
<template>
  <div>
    <slot></slot>
  </div>
</template>

Potem używasz tego komponentu, wstrzykując treść do zadeklarowanego slotu:

javascript
<my-component>
  <p>Contenu injecté</p>
</my-component>

Wstrzyknięta treść pojawi się w miejscu slotu w komponencie nadrzędnym.

Rodzaje slotów

Do wyboru masz kilka rodzajów slotów, zależnie od potrzeb:

Slot domyślny

Ten slot zadziała wtedy, gdy nie wskażesz żadnego innego. Deklarujesz go zwykłą składnią <slot></slot>.

javascript
<template>
  <div>
    <slot></slot>
  </div>
</template>

Slot nazwany

Pozwala zadeklarować kilka slotów w jednym komponencie i odwoływać się do nich po nazwie. Na przykład:

javascript
<template>
  <div>
    <slot name="header"></slot>
    <slot name="footer"></slot>
  </div>
</template>

Slot scoped

Ten slot pozwala wstrzyknąć treść z własnym zakresem danych. Deklaruje się go taką składnią:

javascript
<template>
  <div>
    <slot v-bind:text="textProp"></slot>
  </div>
</template>

<script>
export default {
  data() {
    return {
      textProp: 'Texte par défaut'
    }
  }
}
</script>

Używając komponentu ze slotem scoped, możesz też przekazywać przez slot właściwości:

javascript
<my-component>
  <template v-slot:default="slotProps">
    {{ slotProps.text }}
  </template>
</my-component>

Typowe zastosowania slotów

Sloty przydają się w wielu sytuacjach, na przykład:

  • Ponowne wykorzystanie komponentów z różną zawartością.
  • Dostosowanie komponentów do konkretnych stylów i zachowań.
  • Budowanie motywów dla komponentów, używanych elastycznie w różnych częściach aplikacji.

Podsumowanie

Sloty to mocny mechanizm Vue.js, dzięki któremu komponenty dzielą się treścią elastycznie i skutecznie. Poszczególne rodzaje slotów odpowiadają na różne potrzeby i sprawdzają się w wielu scenariuszach.

Mamy nadzieję, że ten szczegółowy przewodnik po slotach w Vue.js okazał się przydatny i dobrze pokazał, jak sloty działają i jak z nich korzystać.

JavaScriptVue.js

Damien Flandrin Web developer od 2010 roku, twórca Gekkode i Email Impact. Każdy artykuł jest sprawdzany na prawdziwym projekcie przed publikacją. Kontakt
Newsletter

Nowe testy, poradniki i projekty — e-mailem.

Powtarzalne testy, wersjonowany kod, datowane wyniki. Nigdy spamu.