Appearance
Unificação de Ranhuras rutura
Visão Geral
Esta mudança unifica as ranhuras normais e isoladas na 3.x.
Eis um rápido sumário do que mudou:
this.$slotsagora expõe as ranhuras como funções- RUTURA:
this.$scopeSlotsfoi removida
Para mais informação, continue a ler!
Sintaxe da 2.x
Quando usamos a função de interpretação, por exemplo, a h, que a 2.x usava para definir a propriedade de dados slot sobre os nós de conteúdo:
js
// Sintaxe da 2.x
h(LayoutComponent, [
h('div', { slot: 'header' }, this.header),
h('div', { slot: 'content' }, this.content)
])Além disto, quando referenciarmos as ranhuras isoladas, poderiam ser referenciadas usando a seguinte sintaxe:
js
// Sintaxe da 2.x
this.$scopedSlots.headerSintaxe da 3.x
Na 3.x, as ranhuras são definidas como filhas do nó atual como um objeto:
js
// Sintaxe da 3.x
h(LayoutComponent, {}, {
header: () => h('div', this.header),
content: () => h('div', this.content)
})E quando precisarmos de referenciar as ranhuras isoladas programaticamente, agora estão unificadas na opção $slots:
js
// Sintaxe da 2.x
this.$scopedSlots.header
// Sintaxe da 3.x
this.$slots.header()Estratégia de Migração
Uma grande parte da mudança já foi entregada na 2.6. Como resultado, a migração pode acontecer em um passo:
- Substituir todas as ocorrências de
this.$scopedSlotsporthis.$slotsna 3.x. - Substituir todas as ocorrências de
this.$slots.mySlotporthis.$slot.mySlot().