2.6.0版vue 插槽文档小结
Posted zhenxiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.6.0版vue 插槽文档小结相关的知识,希望对你有一定的参考价值。
<slot>插槽 一般使用组件时 在标签内填写的内容是不被编译的,当想要在父级使用组件时能填写内容则需要在定义组件时添加<slot></slot>标签,在插槽内可以给上默认内容,当父级调用时没有给内容时也就有了默认的值
一个不带 name 的 <slot> 出口会带有隐含的名字“default”。
具名插槽
在需要多个插槽的模板中,为了区分插槽,使用name属性,然后在父级使用组件时用v-slot:header区分要为哪个插槽添加内容,最后没有对应名字的就是子组件没有给名字的插槽要对应的内容。
<template v-slot:header> <h1>Here might be a page title</h1> </template>
作用域插槽
父级模板里的所有内容都是在父级作用域中编译的;子模板里的所有内容都是在子作用域中编译的。
所以当在父级模板中使用子组件时添加插槽内容时,想要用子组件中的data数据是行不通的,作用域的限制,想要访问时,需要在子组件:
<span> <slot :user="user"> user.lastName </slot> </span>
是的像极了props组件的传值,这个是理解为反向,
父:自定义一个字段slotProps对象接收传过来的插槽prop
<template v-slot:default="slotProps"> slotProps.user.firstName </template>
当只有默认插槽传插槽prop时可以不用另外起一个template标签,在父组件中直接把v-slot:default="slotProps" 写在子组件的应用上
如果不想自定义字段接收插槽prop可以用解构按需引入v-slot=" user "
也能重命名与给定默认值(值为undefined时 )v-slot=" user: person " v-slot=" user = firstName: ‘Guest‘ "
动态指令参数也可以用在 v-slot 上,来定义动态的插槽名:这个动态值是在父组件的作用域
<base-layout>
<template v-slot:[dynamicSlotName]>
...
</template></base-layout>
跟 v-on 和 v-bind 一样,v-slot 也有缩写,即把参数之前的所有内容 (v-slot:) 替换为字符 #。例如 v-slot:header 可以被重写为 #header:
以上是关于2.6.0版vue 插槽文档小结的主要内容,如果未能解决你的问题,请参考以下文章