插槽分为默认插槽(组件内定制一处结构)、具名插槽(组件内定制多处结构)
作用域插槽不属于以上,只是插槽的一个传参语法
默认插槽
作用:让组件内部的一些结构支持自定义
需求:要在页面中显示一个对话框,封装成一个组件
问题:组件的内容部分,不希望写死,希望能使用的时候自定义。
插槽基本语法:
1.组件内需要定制的结构部分,改用<slot></slot>占位
2.使用组件时,<MyDialog></MyDialog>标签内部,传入结构替换slot
后备内容(默认值)
通过插槽完成了内容的定制,传什么显示什么,但是如果不传,则是空白
插槽后备内容:封装组件时,可以为预留的'<slot>'插槽提供后备内容(默认内容)。
语法:在<slot>标签内,放置内容,作为默认显示内容
效果:外部使用组件时,不传东西,则slot会显示后备内容;传东西,则后备内容被替代。
具名插槽
一旦插槽起了名字,就是具名插槽,只支持定向分发
需求:一个组件内有多处结构,需要外部传入标签,进行定制
默认插槽:一个的定制位置
语法:
3.v-slot:插槽名可以简化为#插槽名
作用域插槽
定义slot插槽的同时是可以传值的。给插槽上可以绑定数据,将来使用组件时可以用。
场景:封装表格组件
1.父传子,动态渲染表格内容