您当前的位置: 首页 > 热点 > > 内容页

环球百事通!vue模拟el-table演示插槽用法

来源:博客园 2023-05-30 12:27:29
vue模拟el-table演示插槽用法

很多人知道插槽分为三种,但是实际到elementui当中为什么这么用,就一脸懵逼,接下来就跟大家聊一聊插槽在elementui中的应用,并且自己写一个类似el-table的组件

vue的slot分为三种::匿名插槽,具名插槽, 作用域插槽,主要作用:让父组件可以向子组件指定位置插入 html 结构,也是一种组件间通信的方式,适用于父组件=>子组件

1、匿名插槽

匿名组件相当于一个占位符,将父组件的数据传入子组件的slot标签内


(资料图片仅供参考)

父组件:

<script>import ChildSlot from "@/components/ChildSlot";export default {  components:{    ChildSlot  }}</script>

子组件:

<script>export default {  name: "ChildSlot"}</script>

运行结果如下:

此时父组件中的“父组件调用”这段内容就传递到了子组件,并填入了slot挖的坑当中

2、具名插槽

具名插槽相当于给插槽添加了一个名字(给插槽加入name属性就是具名插槽)

父组件:

<script>import ChildSlot from "@/components/ChildSlot";export default {  components:{    ChildSlot  }}</script>

子组件:

<script>export default {  name: "ChildSlot"}</script>

运行结果如下:

此时父组件中的根据slot的name,将内容填入了slot挖的坑当中,一个萝卜一个坑

3、作用域插槽

与前两者的不同 slot自定义:name="值" 子组件可向父组件传递信息

父组件:

<script>import ChildSlot from "@/components/ChildSlot";export default {  components:{    ChildSlot  }}</script>

子组件:

<script>export default {  name: "ChildSlot",  data(){    return{        username:"java",    }  }}</script>

运行结果如下:

通过作用域插槽,我们可以将子组件中的值传入到父组件,在父组件进行数据处理后,填坑到子组件

4、模拟写一个el-table

先看一个el-table的例子,当需要对一行中的某一个单元格的内容进行处理的时候,需要用到slot插槽,例如下面的姓名name的处理

参照el-table,实现我们自己的table组件,讲解下为什么需要用插槽,用了哪些插槽

4.1为了传递table,首先通过匿名插槽,写一个的组件,目的就是模拟下面这三行内容

<script>export default {  name: "MyTable"}</script>
4.2实现el-table-column,通过作用域插槽,写我们自己的el-table-column
<script>export default {  name: "MyTableColumn",  props: {    prop: {type: String},    label: {type: String}  }}</script>
4.2调用my-table,my-table-column

我们通过my-table标签,将内容my-table和my-table-column放置到my-table的匿名插槽中,并通过子组件的props属性,接收prop和label。如同elementui一样,如果prop为空,子附件将父组件的user通过作用域插槽传递到父组件,并在父组件进行处理

<script>import MyTable from "@/components/MyTable";import MyTableColumn from "@/components/MyTableColumn";export default {  name: "App",  components:{    MyTableColumn,    MyTable  },  data(){    return{      tableList:[        {          name: "java大师1",          sex: "男",          address: "西藏1"        },        {          name: "java大师2",          sex: "男",          address: "西藏2"        },        {          name: "java大师3",          sex: "男",          address: "西藏3"        },        {          name: "java大师4",          sex: "男",          address: "西藏4"        }      ]    }  }}</script>

展示结果如下:

上一篇 下一篇
x
推荐阅读 更多
环球百事通!vue模拟el-table演示插槽用法

vue模拟el-table演示插槽用法>**很多人知道插槽分为三种,但是实际到elementui当中为什么这么用,就一脸

2023-05-30
石峰区、株洲经开区与十校签约 打造校地合作典范-当前时讯

株洲日报讯(全媒体记者 李逸峰通讯员 谭洪汀李琼璜)5月29日,石峰区、株洲经开区与湖南工业大学、株洲9所职

2023-05-30
世界快看:张可盈《公诉》开播 牵线红娘汪小娇尽显闺蜜力

5月29日,由余丁执导,陈复军、祖若蒙任总编剧,唐三彩等任编剧,迪丽热巴、佟大为、高鑫、尤靖茹领衔主演

2023-05-30
“晓喻新生”设计沙龙|专访王选政:中国品牌设计的进展

2023年5月28日,搜狐“晓喻新生”设计主题沙龙暨2023搜狐无界·美学大赏启动仪式在北京举办。活动期间,中

2023-05-30
每日热议!强信心·科技创新在一线|一辆叉车的闪转腾挪

“今年以来,公司的西林系列新产品国内外双向发力,不仅在亚马逊、阿里巴巴开设了店铺,还设立了企业自建站

2023-05-30
长庆油田打造高水平科技“孵化摇篮”

中国石油网消息(记者肖丹通讯员武平仓)5月23日,长庆油田举办院士大讲堂,中国工程院院士赵文智讲授第一

2023-05-30
河北省内陆水域禁渔时间为5月16日12时至7月31日12时

长城网·冀云客户端讯(记者贾宏博)日前,河北省农业农村厅制定《河北省2023年休禁渔管理工作方案》。方案

2023-05-30
批准逮捕决定书_批准英文

1、Permit admit承认允许allowsbtodosth approve 批准。2、通过appr

2023-05-30
中国载人航天工程征集载人月球车研制方案

中国网是国务院新闻办公室领导,中国外文出版发行事业局管理的国家重点新闻网站。本网通过10个语种11个文版

2023-05-30
当前简讯:组织的概念及基本特征_组织的概念

1、组织,从广义上说,组织是指由诸多要素按照一定方式相互联系起来的系统。2、从狭义上说,组织就是指人们为

2023-05-30