slot


Halaman ini menganggap anda telah membaca Asas Komponen. Jika anda masih belum tahu banyak tentang komponen, saya syorkan anda membacanya terlebih dahulu.

Dalam 2.6.0, kami memperkenalkan sintaks bersatu baharu untuk slot dinamakan dan slot berskop (arahan v-slot). Ia menggantikan slot dan slot-scope yang pada masa ini ditamatkan tetapi tidak dialih keluar dan masih Ciri v-slot 指令)。它取代了 slot 和 slot-scope 这两个目前已被废弃但未被移除且仍在文档中的特性。新语法的由来可查阅这份 RFC


目录



插槽内容


Vue 实现了一套内容分发的 API,这套 API 的设计灵感源自 Web Components 规范草案,将 <slot> 元素作为承载分发内容的出口。

它允许你像这样合成组件:

<navigation-link url="/profile">
  Your Profile
</navigation-link>

然后你在 <navigation-link> 的模板中可能会写为:

<a
  v-bind:href="url"
  class="nav-link"
>
  <slot></slot>
</a>

当组件渲染的时候,<slot></slot> dalam dokumen. Asal sintaks baharu boleh didapati dalam RFC

.

🎜
🎜🎜Jadual Kandungan
🎜
🎜
🎜🎜
🎜

Kandungan slot


🎜Vue melaksanakan satu set API pengedaran kandungan, reka bentuk API ini diilhamkan oleh
Komponen Web Spesifikasi draf 🎜 menggunakan elemen <slot> sebagai saluran untuk membawa kandungan yang diedarkan. . ;</slot> akan digantikan dengan "Profil Anda". Slot boleh mengandungi sebarang kod templat, termasuk HTML: 🎜
<navigation-link url="/profile">
  <!-- 添加一个 Font Awesome 图标 -->
  <span class="fa fa-user"></span>
  Your Profile
</navigation-link>
🎜 atau komponen lain: 🎜
<navigation-link url="/profile">
  <!-- 添加一个图标的组件 -->
  <font-awesome-icon name="user"></font-awesome-icon>
  Your Profile
</navigation-link>

Jika <navigation-link> tidak mengandungi elemen <slot>, sebarang kandungan antara teg permulaan dan akhir komponen akan dibuang. <navigation-link> 没有包含一个 <slot> 元素,则该组件起始标签和结束标签之间的任何内容都会被抛弃。


编译作用域


当你想在一个插槽中使用数据时,例如:

<navigation-link url="/profile">
  Logged in as {{ user.name }}
</navigation-link>

该插槽跟模板的其它地方一样可以访问相同的实例属性 (也就是相同的“作用域”),而不能访问 <navigation-link> 的作用域。例如 url 是访问不到的:

<navigation-link url="/profile">
  Clicking here will send you to: {{ url }}
  <!--
  这里的 `url` 会是 undefined,因为 "/profile" 是
  _传递给_ <navigation-link> 的而不是
  在 <navigation-link> 组件*内部*定义的。
  -->
</navigation-link>

作为一条规则,请记住:

父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。


后备内容


有时为一个插槽设置具体的后备 (也就是默认的) 内容是很有用的,它只会在没有提供内容的时候被渲染。例如在一个 <submit-button> 组件中:

<button type="submit">
  <slot></slot>
</button>

我们可能希望这个 <button> 内绝大多数情况下都渲染文本“Submit”。为了将“Submit”作为后备内容,我们可以将它放在 <slot> 标签内:

<button type="submit">
  <slot>Submit</slot>
</button>

现在当我在一个父级组件中使用 <submit-button> 并且不提供任何插槽内容时:

<submit-button></submit-button>

后备内容“Submit”将会被渲染:

<button type="submit">
  Submit
</button>

但是如果我们提供内容:

<submit-button>
  Save
</submit-button>

则这个提供的内容将会被渲染从而取代后备内容:

<button type="submit">
  Save
</button>


具名插槽


自 2.6.0 起有所更新。已废弃的使用 slot 特性的语法在这里

有时我们需要多个插槽。例如对于一个带有如下模板的 <base-layout> 组件:

<div class="container">
  <header>
    <!-- 我们希望把页头放这里 -->
  </header>
  <main>
    <!-- 我们希望把主要内容放这里 -->
  </main>
  <footer>
    <!-- 我们希望把页脚放这里 -->
  </footer>
</div>

对于这样的情况,<slot> 元素有一个特殊的特性:name。这个特性可以用来定义额外的插槽:

<div class="container">
  <header>
    <slot name="header"></slot>
  </header>
  <main>
    <slot></slot>
  </main>
  <footer>
    <slot name="footer"></slot>
  </footer>
</div>

一个不带 name<slot> 出口会带有隐含的名字“default”。

在向具名插槽提供内容的时候,我们可以在一个 <template> 元素上使用 v-slot 指令,并以 v-slot 的参数的形式提供其名称:

<base-layout>
  <template v-slot:header>
    <h1>Here might be a page title</h1>
  </template>
  <p>A paragraph for the main content.</p>
  <p>And another one.</p>
  <template v-slot:footer>
    <p>Here's some contact info</p>
  </template>
</base-layout>

现在 <template> 元素中的所有内容都将会被传入相应的插槽。任何没有被包裹在带有 v-slot<template>


🎜

Kompilasi skop


🎜Apabila anda ingin menggunakan data dalam slot, contohnya: 🎜
<base-layout>
  <template v-slot:header>
    <h1>Here might be a page title</h1>
  </template>
  <template v-slot:default>
    <p>A paragraph for the main content.</p>
    <p>And another one.</p>
  </template>
  <template v-slot:footer>
    <p>Here's some contact info</p>
  </template>
</base-layout>
🎜Slot boleh mengakses sifat contoh yang sama (iaitu, "skop" yang sama seperti di tempat lain dalam templat, tetapi tidak boleh mengakses < ;navigation-link> skop. Contohnya, url tidak boleh diakses: 🎜
<div class="container">
  <header>
    <h1>Here might be a page title</h1>
  </header>
  <main>
    <p>A paragraph for the main content.</p>
    <p>And another one.</p>
  </main>
  <footer>
    <p>Here's some contact info</p>
  </footer>
</div>
🎜Sebagai peraturan, ingat: 🎜
🎜Semua dalam templat induk disusun dalam skop induk; semua dalam templat anak Kandungan disusun dalam skop anak. 🎜
🎜
🎜

Kandungan sandaran


🎜Kadangkala adalah berguna untuk menetapkan kandungan sandaran tertentu (iaitu lalai) untuk slot, yang hanya akan dipaparkan apabila tiada kandungan disediakan. Sebagai contoh, dalam komponen <submit-button>: 🎜
<span>
  <slot>{{ user.lastName }}</slot>
</span>
🎜Kami mungkin mahu <butang> ini menjadikan teks "Serah" dalam kebanyakan kes. Untuk mempunyai "Serah" sebagai sandaran, kita boleh meletakkannya di dalam teg <slot>: 🎜
<current-user>
  {{ user.firstName }}
</current-user>
🎜Sekarang apabila saya menggunakan <submit-button> dalam komponen induk ; dan apabila tiada kandungan slot disediakan: 🎜
<span>
  <slot v-bind:user="user">
    {{ user.lastName }}
  </slot>
</span>
🎜 kandungan sandaran "Serah" akan diberikan: 🎜
<current-user>
  <template v-slot:default="slotProps">
    {{ slotProps.user.firstName }}
  </template>
</current-user>
🎜 Tetapi jika kami menyediakan kandungan: 🎜
<current-user v-slot:default="slotProps">
  {{ slotProps.user.firstName }}
</current-user>
🎜 maka kandungan yang disediakan ini akan dipaparkan dan digantikan kandungan Sandaran: 🎜
<current-user v-slot="slotProps">
  {{ slotProps.user.firstName }}
</current-user>
🎜< br/>🎜

Slot bernama
🎜Dikemas kini sejak 2.6.0. Sintaks yang ditamatkan untuk menggunakan atribut slot ditemui di sini< / a>. 🎜
🎜Kadangkala kita memerlukan berbilang slot. Contohnya, untuk komponen <base-layout> dengan templat berikut: 🎜
<!-- 无效,会导致警告 -->
<current-user v-slot="slotProps">
  {{ slotProps.user.firstName }}
  <template v-slot:other="otherSlotProps">
    slotProps is NOT available here
  </template>
</current-user>
🎜Untuk kes sedemikian, elemen <slot> mempunyai atribut khas: < kod>nama. Ciri ini boleh digunakan untuk mentakrifkan slot tambahan: 🎜
<current-user>
  <template v-slot:default="slotProps">
    {{ slotProps.user.firstName }}
  </template>
  <template v-slot:other="otherSlotProps">
    ...
  </template>
</current-user>
🎜Saluran <slot> tanpa nama akan mempunyai nama tersirat "lalai". 🎜🎜Apabila menyediakan kandungan pada slot bernama, kami boleh menggunakan arahan v-slot pada elemen <template> dan mengakhirinya dengan v-slot < Parameter /code> diberi namanya dalam bentuk: 🎜
function (slotProps) {
  // 插槽内容
}
🎜Sekarang semua dalam elemen <template> akan dihantar ke slot yang sepadan. Sebarang kandungan yang tidak dibungkus dalam <template> dengan v-slot akan dianggap sebagai kandungan slot lalai. 🎜

Walau bagaimanapun, jika anda ingin menjadi lebih jelas, anda masih boleh membungkus kandungan slot lalai dalam <template>: <template> 中包裹默认插槽的内容:

<current-user v-slot="{ user }">
  {{ user.firstName }}
</current-user>

任何一种写法都会渲染出:

<current-user v-slot="{ user: person }">
  {{ person.firstName }}
</current-user>

注意: v-slot 只能添加在一个 <template> 上 (只有一种例外情况),这一点和已经废弃的 slot 特性不同。


作用域插槽


自 2.6.0 起有所更新。已废弃的使用 slot-scope 特性的语法在这里

有时让插槽内容能够访问子组件中才有的数据是很有用的。例如,设想一个带有如下模板的 <current-user> 组件:

<current-user v-slot="{ user = { firstName: 'Guest' } }">
  {{ user.firstName }}
</current-user>

我们想让它的后备内容显示用户的名,以取代正常情况下用户的姓,如下:

<base-layout>
  <template v-slot:[dynamicSlotName]>
    ...
  </template>
</base-layout>

然而上述代码不会正常工作,因为只有 <current-user> 组件可以访问到 user 而我们提供的内容是在父级渲染的。

为了让 user 在父级的插槽内容中可用,我们可以将 user 作为 <slot> 元素的一个特性绑定上去:

<base-layout>
  <template #header>
    <h1>Here might be a page title</h1>
  </template>
  <p>A paragraph for the main content.</p>
  <p>And another one.</p>
  <template #footer>
    <p>Here's some contact info</p>
  </template>
</base-layout>

绑定在 <slot> 元素上的特性被称为插槽 prop。现在在父级作用域中,我们可以给 v-slot 带一个值来定义我们提供的插槽 prop 的名字:

<!-- 这样会触发一个警告 -->
<current-user #="{ user }">
  {{ user.firstName }}
</current-user>

在这个例子中,我们选择将包含所有插槽 prop 的对象命名为 slotProps,但你也可以使用任意你喜欢的名字。


独占默认插槽的缩写语法

在上述情况下,当被提供的内容只有默认插槽时,组件的标签才可以被当作插槽的模板来使用。这样我们就可以把 v-slot 直接用在组件上:

<current-user #default="{ user }">
  {{ user.firstName }}
</current-user>

这种写法还可以更简单。就像假定未指明的内容对应默认插槽一样,不带参数的 v-slot 被假定对应默认插槽:

<ul>
  <li
    v-for="todo in filteredTodos"
    v-bind:key="todo.id"
  >
    {{ todo.text }}
  </li>
</ul>

注意默认插槽的缩写语法不能和具名插槽混用,因为它会导致作用域不明确:

<ul>
  <li
    v-for="todo in filteredTodos"
    v-bind:key="todo.id"
  >
    <!--
    我们为每个 todo 准备了一个插槽,
    将 `todo` 对象作为一个插槽的 prop 传入。
    -->
    <slot name="todo" v-bind:todo="todo">
      <!-- 后备内容 -->
      {{ todo.text }}
    </slot>
  </li>
</ul>

只要出现多个插槽,请始终为所有的插槽使用完整的基于 <template>

<todo-list v-bind:todos="todos">
  <template v-slot:todo="{ todo }">
    <span v-if="todo.isComplete">?</span>
    {{ todo.text }}
  </template>
</todo-list>

Mana-mana cara akan menyebabkan:

<base-layout>
  <template slot="header">
    <h1>Here might be a page title</h1>
  </template>
  
  <p>A paragraph for the main content.</p>
  <p>And another one.</p>
  
  <template slot="footer">
    <p>Here's some contact info</p>
  </template>
</base-layout>

Nota: < kod >v-slot
hanya boleh ditambahkan pada <template> (hanya pengecualian), ini dan slot ciriadalah berbeza.

Slot skop


Sejak 2.6.0 Dikemas kini sejak kemudian. Sintaks yang ditamatkan untuk menggunakan atribut slot-scope ditemui di sini .

🎜Kadangkala ia berguna untuk memberikan akses kandungan slot kepada data yang hanya tersedia dalam komponen kanak-kanak. Sebagai contoh, bayangkan komponen <current-user> dengan templat berikut: 🎜
<base-layout>
  <h1 slot="header">Here might be a page title</h1>
  
  <p>A paragraph for the main content.</p>
  <p>And another one.</p>
  
  <p slot="footer">Here's some contact info</p>
</base-layout>
🎜 Kami mahu kandungan sandarannya memaparkan nama pertama pengguna dan bukannya nama keluarga pengguna biasa, seperti berikut: 🎜
<div class="container">
  <header>
    <h1>Here might be a page title</h1>
  </header>
  <main>
    <p>A paragraph for the main content.</p>
    <p>And another one.</p>
  </main>
  <footer>
    <p>Here's some contact info</p>
  </footer>
</div>
🎜Walau bagaimanapun, kod di atas tidak akan berfungsi dengan betul kerana hanya komponen <current-user> boleh mengakses user dan kandungan yang kami sediakan dipaparkan pada peringkat induk. 🎜🎜Untuk menjadikan pengguna tersedia dalam kandungan slot induk, kami boleh mengikat pengguna sebagai atribut elemen <slot> Untuk menyelesaikan: 🎜
<slot-example>
  <template slot="default" slot-scope="slotProps">
    {{ slotProps.msg }}
  </template>
</slot-example>
🎜Harta yang terikat pada elemen <slot> dipanggil 🎜slot prop🎜. Kini dalam skop induk, kami boleh memberikan v-slot nilai yang mentakrifkan nama prop slot yang kami sediakan: 🎜
<slot-example>
  <template slot-scope="slotProps">
    {{ slotProps.msg }}
  </template>
</slot-example>
🎜Dalam contoh ini, kami memilih untuk memasukkan semua slot Objek prop dinamakan slotProps, tetapi anda boleh menggunakan mana-mana nama yang anda suka. 🎜🎜🎜🎜

🎜🎜Sintaks singkatan untuk slot lalai eksklusif🎜🎜🎜🎜Dalam kes di atas, apabila kandungan yang disediakan hanya mempunyai slot lalai, label komponen boleh digunakan sebagai Gunakannya sebagai templat untuk slot. Dengan cara ini, kita boleh menggunakan v-slot terus pada komponen: 🎜

<slot-example>
  <span slot-scope="slotProps">
    {{ slotProps.msg }}
  </span>
</slot-example>
🎜Cara penulisan ini boleh menjadi lebih mudah. Sama seperti kandungan yang tidak ditentukan diandaikan sepadan dengan slot lalai, v-slot tanpa parameter diandaikan sepadan dengan slot lalai: 🎜
<slot-example>
  <span slot-scope="{ msg }">
    {{ msg }}
  </span>
</slot-example>
🎜Perhatikan bahawa sintaks yang disingkat slot lalai 🎜 tidak boleh 🎜 digunakan dengan slot yang dinamakan Slot pencampuran kerana ia membawa kepada kekaburan skop: 🎜
<todo-list v-bind:todos="todos">
  <template slot="todo" slot-scope="{ todo }">
    <span v-if="todo.isComplete">?</span>
    {{ todo.text }}
  </template>
</todo-list>
🎜 Setiap kali terdapat berbilang slot, sentiasa gunakan sintaks berasaskan <template> untuk semua slot: 🎜rrreee🎜 🎜🎜 🎜🎜🎜Memusnahkan Slot Prop🎜🎜🎜🎜Kerja dalaman slot berskop adalah untuk membungkus kandungan slot anda dalam fungsi yang diluluskan dalam satu hujah: 🎜rrreee

Ini bermakna bahawa nilai v-slot sebenarnya boleh menjadi sebarang ungkapan JavaScript yang boleh dihantar sebagai parameter dalam definisi fungsi. Jadi dalam persekitaran yang disokong (Komponen fail tunggal atau Pelayar moden), anda juga boleh menggunakan ES2015 memusnahkan untuk lulus dalam The specific props slot adalah seperti berikut: v-slot 的值实际上可以是任何能够作为函数定义中的参数的 JavaScript 表达式。所以在支持的环境下 (单文件组件现代浏览器),你也可以使用 ES2015 解构来传入具体的插槽 prop,如下:

rrreee

这样可以使模板更简洁,尤其是在该插槽提供了多个 prop 的时候。它同样开启了 prop 重命名等其它可能,例如将 user 重命名为 person

rrreee

你甚至可以定义后备内容,用于插槽 prop 是 undefined 的情形:

rrreee


动态插槽名


2.6.0 新增

动态指令参数也可以用在 v-slot 上,来定义动态的插槽名:

rrreee


具名插槽的缩写


2.6.0 新增

v-onv-bind 一样,v-slot 也有缩写,即把参数之前的所有内容 (v-slot:) 替换为字符 #。例如 v-slot:header 可以被重写为 #header

rrreee

然而,和其它指令一样,该缩写只在其有参数的时候才可用。这意味着以下语法是无效的:

rrreee

如果你希望使用缩写的话,你必须始终以明确插槽名取而代之:

rrreee


其它示例


插槽 prop 允许我们将插槽转换为可复用的模板,这些模板可以基于输入的 prop 渲染出不同的内容。这在设计封装数据逻辑同时允许父级组件自定义部分布局的可复用组件时是最有用的。

例如,我们要实现一个 <todo-list> 组件,它是一个列表且包含布局和过滤逻辑:

rrreee

我们可以将每个 todo 作为父级组件的插槽,以此通过父级组件对其进行控制,然后将 todo 作为一个插槽 prop 进行绑定:

rrreee

现在当我们使用 <todo-list> 组件的时候,我们可以选择为 todo 定义一个不一样的 <template>rrreee

Ini boleh menjadikan templat lebih ringkas, terutamanya apabila slot menyediakan berbilang prop. Ia juga membuka kemungkinan lain untuk penamaan semula prop, seperti menamakan semula pengguna kepada orang: 🎜rrreee🎜Anda juga boleh menentukan kandungan sandaran untuk prop slot yang tidak ditentukan Situasi: 🎜rrreee 🎜
🎜

Nama slot dinamik

< hr/>
🎜2.6.0 Baharu 🎜
🎜 Parameter arahan dinamik juga boleh digunakan pada v-slot untuk mentakrifkan nama slot dinamik: 🎜rrreee🎜
🎜

Singkatan slot bernama


🎜2.6.0 Baharu 🎜
🎜ikut v-on Suka < code>v-bind, v-slot juga mempunyai singkatan, iaitu segala-galanya sebelum parameter (v-slot :) digantikan dengan aksara #. Contohnya, v-slot:header boleh ditulis semula sebagai #header: 🎜rrreee🎜 Walau bagaimanapun, seperti arahan lain, singkatan ini hanya tersedia jika ia mempunyai parameter. Ini bermakna sintaks berikut tidak sah: 🎜rrreee🎜 Jika anda ingin menggunakan singkatan, anda mesti sentiasa menentukan nama slot sebagai ganti: 🎜rrreee🎜
🎜

Contoh lain


🎜Prop slot membolehkan kami menukar slot kepada templat boleh guna semula , templat ini boleh memberikan kandungan yang berbeza berdasarkan props input. Ini paling berguna apabila mereka bentuk komponen boleh guna semula yang merangkum logik data sambil membenarkan komponen induk menyesuaikan bahagian reka letak. 🎜🎜Sebagai contoh, kami ingin melaksanakan komponen <todo-list>, iaitu senarai dan mengandungi reka letak dan logik penapisan: 🎜rrreee🎜Kita boleh menggunakan setiap todo sebagai slot ibu bapa component , untuk mengawalnya melalui komponen induk, dan kemudian mengikat todo sebagai prop slot: 🎜rrreee🎜Kini apabila kita menggunakan komponen <todo-list>, kita boleh pilih untuk mentakrifkan <template> yang berbeza untuk todo sebagai alternatif dan boleh mendapatkan data daripada sub-komponen: 🎜rrreee

Ini hanyalah puncak gunung ais di mana slot berskop boleh berguna. Untuk lebih banyak penggunaan sebenar slot berskop, kami mengesyorkan menyemak imbas perpustakaan seperti Vue Virtual Scroller, Vue Promised dan Portal Vue.


Sintaks ditamatkan


Arahan v-slot telah diperkenalkan dalam Vue 2.6.0 untuk menyediakan sokongan alternatif yang lebih baik untuk kepada ciri slot-skop. v-slot Untuk asal yang lengkap, lihat ini v-slot 指令自 Vue 2.6.0 起被引入,提供更好的支持 slot 和 slot-scope 特性的 API 替代方案。v-slot 完整的由来参见这份 RFC。在接下来所有的 2.x 版本中 slot 和 slot-scope 特性仍会被支持,但已经被官方废弃且不会出现在 Vue 3 中。


带有 slot 特性的具名插槽

自 2.6.0 起被废弃。新推荐的语法请查阅这里

<template> 上使用特殊的 slot 特性,可以将内容从父级传给具名插槽 (把这里提到过的 <base-layout> 组件作为示例):

rrreee

或者直接把 slot 特性用在一个普通元素上:

rrreee

这里其实还有一个未命名插槽,也就是默认插槽,捕获所有未被匹配的内容。上述两个示例的 HTML 渲染结果均为:

rrreee


带有 slot-scope 特性的作用域插槽

自 2.6.0 起被废弃。新推荐的语法请查阅这里

<template> 上使用特殊的 slot-scope 特性,可以接收传递给插槽的 prop (把这里提到过的 <slot-example>

RFC🎜🎜🎜. Ciri slot dan slot-scope masih akan disokong dalam semua versi 2.x berikutnya, tetapi telah ditamatkan secara rasmi dan tidak akan muncul dalam Vue 3. 🎜🎜🎜🎜🎜

🎜Slot dinamakan dengan ciri slot🎜🎜 🎜🎜 🎜🎜Ditamatkan sejak 2.6.0. Untuk sintaks baharu yang disyorkan, sila semak 🎜🎜di sini🎜🎜🎜. 🎜🎜🎜Gunakan atribut slot khas pada <template> untuk menghantar kandungan daripada induk kepada slot yang dinamakan (letakkan Di sini🎜 menyebut komponen <base-layout> sebagai contoh):🎜rrreee 🎜Atau gunakan terus atribut slot pada elemen biasa: 🎜rrreee🎜Sebenarnya terdapat slot yang tidak dinamakan di sini, iaitu 🎜slot lalai🎜, yang menangkap semua kandungan yang tidak dapat ditandingi. Keputusan pemaparan HTML bagi dua contoh di atas ialah: 🎜rrreee🎜🎜🎜

🎜dengan slot-skop slot skop atribut 🎜🎜🎜🎜🎜 ditamatkan sejak 2.6.0. Untuk sintaks baharu yang disyorkan, sila semak di sini🎜. 🎜🎜Gunakan atribut slot-scope khas pada <template> untuk menerima prop yang dihantar ke slot (letakkan Di sini 🎜 menyebut komponen <slot-example> sebagai contoh): 🎜rrreee

slot-scope di sini mengisytiharkan bahawa objek prop yang diterima akan wujud dalam skop <template> sebagai pembolehubah slotProps. Anda boleh menamakan slotProps sewenang-wenangnya seperti anda menamakan parameter fungsi JavaScript. slot-scope 声明了被接收的 prop 对象会作为 slotProps 变量存在于 <template> 作用域中。你可以像命名 JavaScript 函数参数一样随意命名 slotProps

这里的 slot="default" 可以被忽略为隐性写法:

rrreee

slot-scope 特性也可以直接用于非 <template> 元素 (包括组件):

rrreee

slot-scope 的值可以接收任何有效的可以出现在函数定义的参数位置上的 JavaScript 表达式。这意味着在支持的环境下 (单文件组件现代浏览器),你也可以在表达式中使用 ES2015 解构,如下:

rrreee

使用这里描述过的 <todo-list> 作为示例,与它等价的使用 slot-scope

slot="default" di sini boleh diabaikan sebagai tulisan tersirat:

rrreee
Ciri slot-skop juga boleh digunakan terus untuk bukan-< ;template> ; Elemen (termasuk komponen):

rrreee🎜 Nilai slot-scope boleh menerima sebarang ungkapan JavaScript yang sah yang boleh muncul dalam kedudukan parameter definisi fungsi. Ini bermakna bahawa dalam persekitaran yang disokong (Komponen Fail Tunggal atau Pelayar moden), anda juga boleh menggunakan ES2015 Memusnahkan< /a>, seperti berikut: 🎜rrreee🎜Gunakan < yang diterangkan di sini ;todo-list> ; Sebagai contoh, kod yang setara menggunakan slot-scope ialah: 🎜rrreee🎜🎜🎜