<
header
>
<
slot
name
=
"header"
msg
=
"具名作用域插槽--header"
>
</
slot
>
</
header
>
<
slot
msg
=
"默认作用域插槽"
>
</
slot
>
</
main
>
<
footer
>
<
slot
name
=
"footer"
msg
=
"具名作用域插槽--footer"
>
</
slot
>
</
footer
>
</
div
>
</
template
>
jsx写法
export default {
render() {
return (
<header>{this.$scopedSlots.header?.({ msg: "具名作用域插槽--header" })}</header>
<main>{this.$scopedSlots.header?.({ msg: "默认作用域插槽" })}</main>
<footer>{this.$scopedSlots.footer?.({ msg: "具名作用域插槽--footer" })}</footer>
</div>
Parent.vue 父组件
<template>
<Child>
<template slot="header" slot-scope="{ msg }">
<div>{{ msg }}</div>
</template>
<template #default="{ msg }">
{{ msg }}
</template>
<template v-slot:footer="{ msg }">
{{ msg }}
</template>
</Child>
</div>
</template>
jsx写法
export default {
render() {
return (
<Child
scopedSlots={{
header({ msg }) {
return <div>{msg}</div>
default: (scoped) => {
return scoped.msg
footer: ({ msg }) => {
return msg
></Child>
</div>
咫尺天涯_飞
17.6k
粉丝