Skip to content

Regular slot and scoped slot with same name shouldn't be allowed #10149

Open
@lee88688

Description

@lee88688

Version

2.6.10

Reproduction link

https://codepen.io/lee88688/pen/jjPpBm?editors=1010

Steps to reproduce

as seen in codepen, "hello" component have only one slot. but rendered 2 div tag at last. I have a look at Vue's code renderSlot which seems renderSlot function would treat the normal slot as scoped slot. why it would be like this?

the following code is render function of hello component which is compiled by Vue.compile. _t is renderSlot function. when normal slot and scoped slot in same component the problem above will be present.

(function anonymous() {
    with (this) {
        return _c('div', [_t("default"), _v(" "), _t("default", null, {
            "x": x
        })], 2)
    }
}
)

What is expected?

render just one slot.

What is actually happening?

render one slot twice.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions