您的位置:首页 > 财经 > 金融 > 生成短链接的网站_阿里云建站中级版和高级版_制作网页完整步骤代码_搜索引擎优化百度

生成短链接的网站_阿里云建站中级版和高级版_制作网页完整步骤代码_搜索引擎优化百度

2024/12/23 9:50:36 来源:https://blog.csdn.net/friend_ship/article/details/143442451  浏览:    关键词:生成短链接的网站_阿里云建站中级版和高级版_制作网页完整步骤代码_搜索引擎优化百度
生成短链接的网站_阿里云建站中级版和高级版_制作网页完整步骤代码_搜索引擎优化百度

插槽(slot)是一种用于组件模版复用的技术,它允许你在子组件中预留一些位置,然后在父组件中填充内容。这样就可以在不同的地方使用同一个组件,但是在不同的地方显示不同的内容。
插槽主要分为默认插槽、具名插槽、动态插槽、插槽后备、作用域插槽。

默认插槽

// 父组件<div><slotChild>默认传值的方式</slotChild></div>
// 子组件
<template><div><slot></slot></div>
</template>

具名插槽

父组件的第一种写法

<slotChild><template v-slot:header><div>Title</div></template><div>具名插槽的内容</div>
</slotChild>

父组件内部内容的另一种写法

<template #header><div>Title</div>
</template>
<div>具名插槽的内容</div>

子组件的文件

<div><header><slot name="header">Default Header</slot></header><div><slot>default Content</slot></div>
</div>

动态插槽

parent.vue文件

<slotChild:headerSlotName="headerSlot":mainSlotName="mainSlot"><template v-slot:[headerSlot]><div>这是一个动态的头部</div></template><template v-slot:[mainSlot]><div>这是一个动态的内容渲染区域</div></template>
</slotChild>
import { defineComponent, onMounted, ref } from 'vue'
import slotChild from '@/components/slotChild.vue'export default defineComponent({name: 'parent',components: {slotChild},setup() {return {headerSlot: 'header',mainSlot: 'content',}}
})

slotChild.vue的文件

<div><header><slot :name="headerSlotName"></slot></header><main><slot :name="mainSlotName"></slot></main>
</div>
import { defineComponent } from "vue";export default defineComponent({name: 'slotChild',props: {headerSlotName: String,mainSlotName: String},
})

插槽后备

parent.vue文件

<slotChild><template v-slot:header><div>自定义头部内容</div></template>
</slotChild>

slotChild.vue文件

<div><header><slot name="header">Default Header</slot></header><main><slot name="main">默认的主体内容</slot></main>
</div>

在父组件中,只给header传值,主体内容采用默认的值。在大多数情况下,插槽后备与作用域插槽一起使用。

作用域插槽

parent.vue文件

 <slotChild><template v-slot:default="slotProps"><div>{{slotProps.user.name}}</div></template><template v-slot:header="headerProps"><div>{{headerProps.header.title}}</div></template>
</slotChild>

slotChild.vue文件

<div><slot :user="user"></slot><slot name="header" :header="header"></slot>
</div>
import { defineComponent, reactive } from "vue";export default defineComponent({name: 'slotChild',setup() {const user = reactive({name:'summer',age: '18'})const header = reactive({title: '标题',avatar: 'img地址'})return {user,header}}
})

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com