Vue: No se puede especificar el nombre de la ranura dentro de la función de representación (createElement)

Creado en 28 may. 2017  ·  3Comentarios  ·  Fuente: vuejs/vue

¿Qué problema resuelve esta función?

Especifique el nombre de la ranura dentro de la función de procesamiento como se muestra a continuación:

return createElement(rootcmp, { default: [ createElement(childCmp) ], temp: [ createElement(childCmp2) ] } );

¿Cómo es la API propuesta?

Desde dentro de la función de representación, especifique el nombre de la ranura, como 'predeterminado', 'temp' al crear elementos secundarios.

return createElement(rootcmp, { default: [ createElement(childCmp) ], temp: [ createElement(childCmp2) ] } );

Código completo a continuación:

@Component({
    props:[]
})
export class TestComponent extends Widget{
    items:any[];
    render(createElement:any){
        const rootcmp = {
            template:`<div>
                Temp:<slot name="temp"></slot>
                Default:<slot></slot>
            </div>`
            , data:()=>{
                return {};
            }
        }
        const childcmp = {
            template:'<div slot="default">This is child</div>'
            , data:()=>{
                return {};
            }
        }
        const childcmp2 = {
            template:'<div slot="temp">This is child</div>'
            , data:()=>{
                return {};
            }
        }
        return createElement(rootcmp
             , { default: [ createElement(childcmp) ], temp:[ createElement(childcmp2) ]);
    }
}

Comportamiento esperado:

<div>
      Temp:<div>This is child</div>
      Default:<div>This is child</div>
</div>

Comentario más útil

Usa createElement(childcmp, { slot: 'temp' }) .

Todos 3 comentarios

Usa createElement(childcmp, { slot: 'temp' }) .

@ yyx990803 ¿hay alguna razón técnica por la que debamos proceder como está? esta forma es muy poco práctica cuando se trata de nodos generados recursivamente en un lote grande, me pregunto si hay alguna buena razón por la que no podamos hacerlo mejor.

En realidad, este createElement(childcmp, { slot: 'temp' }) no tiene ningún efecto en una tragamonedas.

Creó un informe de errores: https://github.com/vuejs/vue/issues/11519

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

aviggngyv picture aviggngyv  ·  3Comentarios

gkiely picture gkiely  ·  3Comentarios

lmnsg picture lmnsg  ·  3Comentarios

wufeng87 picture wufeng87  ·  3Comentarios

franciscolourenco picture franciscolourenco  ·  3Comentarios