Vue2中插槽的使用
定义slot 插槽的同时 是可以传值的 给插槽上可以绑定数据,将来使用组件可以用。<slot :id="item.id" msg="测试文本"></slot>通过插槽完成了任何内容的定制,传什么显示什么,如果不传,则是空白。封装组件时,可以预留<slot> 插槽提供后备内容(默认内容)插槽只有俩种,作用域插槽不属于插槽的一种分类。外部使用了组件,不传东西,则slot会显示后备内容。在<slot>标
插槽-默认插槽
1.作用
让组件内部的 结构 支持 自定义
2.基本语法
-
组件内需要定制的结构部分,改用<slot></slot>占位
-
使用组件时, <MyDialog></MyDialog>标签内部, 传入结构替换slot
-
给插槽传入内容时,可以传入纯文本、html标签、组件
插槽-后备内容(默认值)
1.问题
通过插槽完成了任何内容的定制,传什么显示什么,如果不传,则是空白
能否给插槽设置默认显示内容呢?
2,插槽的后备内容
封装组件时,可以预留<slot> 插槽提供后备内容(默认内容)
3.语法
在<slot>标签内,放置内容,作为默认显示内容
4.效果
外部使用了组件,不传东西,则slot会显示后备内容
外部使用组件时,传东西了,则slot整体会被换掉
插槽-具名插槽
1.需求
一个组件内又多处结构,需要外部传入标签,进行定制
上面有三处不同,但是默认插槽只能定制一个位置,这时候该怎么办?
2.具名插槽的语法
多个slot使用name属性区分名字
template配合v-slot:名字来分发应对标签
3.v-slot的简写
v-slot 写起来太长,vue给我们提供了一个简单写法 v-slot --> #
作用域插槽
1.插槽分类
默认插槽
具名插槽
插槽只有俩种,作用域插槽不属于插槽的一种分类
2.作用
定义slot 插槽的同时 是可以传值的 给插槽上可以绑定数据,将来使用组件可以用
3.场景
封装表格组件
4.使用步骤
1.给slot标签,以添加属性的方式传值
<slot :id="item.id" msg="测试文本"></slot>
2.所有添加的属性,都会被收集到一个对象中
{ id: 3, msg: '测试文本' }
3.在template 通过 #插槽名=’obj‘接收,默认插槽名为default
<MyTable :list="list">
<template #default="obj">
<button @click="del(obj.id)">删除</button>
</template>
</MyTable>
更多推荐
所有评论(0)